Submission #688286

#TimeUsernameProblemLanguageResultExecution timeMemory
688286saayan007Lost in the cycle (IOI19_cycle)C++17
33 / 100
1 ms212 KiB
#include "cycle.h" #include <bits/stdc++.h> using namespace std; using ll = long long; using pi = pair<int, int>; using pl = pair<long long, long long>; using vi = vector<int>; using vl = vector<long long>; using vpi = vector<pair<int, int>>; using vpl = vector<pair<long long, long long>>; #define fur(i, a, b) for(ll i = a; i <= (ll)b; ++i) #define ruf(i, a, b) for(ll i = a; i >= (ll)b; --i) #define fr first #define sc second #define mp make_pair #define pb emplace_back #define nl "\n" #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() void escape(int n) { ll lo = 0; ll hi = n - 1; ll cur = 0; ll x = 0; while(lo != hi) { // wanna check if [lo, mid] is doable ll mid = (lo + hi) / 2; // so need to jump to mid - n/2 ll y = mid - n/2; if(y < 0) y += n; // the dist I need to jump by to get to y = mid - n/2 x = y - cur; if(x < 0) x += n; // cout << cur << ' ' << lo << ' ' << mid << ' ' << hi << ' ' << y << ' ' << x << nl; if(jump(x)) { hi = mid; } else { lo = mid + 1; } (cur += x) %= n; } ll y = lo; x = y - cur; if(x < 0) x += n; jump(x); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...