Submission #1308676

#TimeUsernameProblemLanguageResultExecution timeMemory
1308676ericl23302Lost in the cycle (IOI19_cycle)C++20
33 / 100
1 ms400 KiB
#include "cycle.h"
#include <iostream>
using namespace std;

void escape(int n) {
	int l = 1, r = 0, half = n / 2 + (n % 2);
	while ((r - l + n) % n > 0) {
		int mid = (l + r + 1) / 2;
		if (r < l) mid = ((l + r + 1 + n) / 2) % n;
		int amount = (half - mid + n) % n;
		// cout << l << ' ' << r << ' ' << mid << ' ' << amount;
		if (jump(amount)) {
			// cout << " True" << endl;
			l = mid;
			l = (l + amount) % n;
			r = (r + amount) % n;
		} else {
			// cout << " False" << endl;
			r = (n + mid - 1) % n;
			l = (l + amount) % n;
			r = (r + amount) % n;
		}
	}

	// cout << l << ' ' << r << ' ' << ((n - l) % n) << endl;
	jump((n - l) % n);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...