Submission #508781

#TimeUsernameProblemLanguageResultExecution timeMemory
508781kevinxiehkLost in the cycle (IOI19_cycle)C++17
100 / 100
2 ms284 KiB
#include "cycle.h"
#include "bits/stdc++.h"
#define ll long long
using namespace std;
void escape(int n) {
    if(n == 2) {
        jump(1);
        return;
    }
    else if(n == 3) {
        if(!jump(2)) jump(2);
        return;
    }
	ll l = 1, r = n - 1;
    ll cut = (n + 1) / 2;
    while(l < r) {
        ll m = (l + r + 1) / 2;
        ll mm = m % n;
        cerr << l << ' ' << r << '\n';
        cerr << mm << ' ';
        ll walk = (cut + n - mm) % n;
        cerr << walk << '\n';
        if(jump(walk)) {
            l = m;
            cerr << "a\n";
        }
        else {
            r = m - 1;
        }

        l += walk;
        r += walk;
    }
    cerr << l << " now\n";
    l %= n;
    jump(n - l);
    return;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...