Submission #1201613

#TimeUsernameProblemLanguageResultExecution timeMemory
1201613hihihahFinding Routers (IOI20_routers)C++20
77 / 100
1 ms328 KiB
#include "routers.h" #include <bits/stdc++.h> #define ll long long #define pii pair <int, int> #define all(x) x.begin(),x.end() using namespace std; vector <int> find_routers (int l, int n, int q) { int sq = 63; vector <int> pos; pos.push_back (0); pii mx = {0, 0}; for (int i = 1; i < n; i ++) { int L = pos.back() + 1, R = l; int cnt = 0; if (mx.first >= i) { R = mx.second; } else { int v = 0; do { cnt ++; R = pos.back () + sq * cnt; if (R >= l) { mx = {n, l}; break; } } while ((v = use_detector (pos.back () + sq * cnt)) == i - 1); if (mx.first < v) mx = {v, pos.back() + sq * cnt}; } R = min (R, l - 1); int ans = 0; while (L <= R) { int mid = L + R >> 1; if (use_detector (mid) == i - 1) { ans = mid; L = mid + 1; } else R = mid - 1; } pos.push_back (pos.back() + (ans - pos.back()) * 2); } return pos; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...