Submission #434870

#TimeUsernameProblemLanguageResultExecution timeMemory
434870kevinxiehkFinding Routers (IOI20_routers)C++17
100 / 100
9 ms332 KiB
#include "routers.h" #include <bits/stdc++.h> using namespace std; int rb[1005]; int ans[1005]; void search(int a) { int l = ans[a - 1] + 1, r = rb[a]; cerr << l << ' ' << r << '\n'; while(l < r) { int m = (l + r + 1) / 2; int x = use_detector(m); for(int i = a; i <= x; i++) rb[i] = min(rb[i], m); if(x == a - 1) l = m; else r = m - 1; } ans[a] = (l - ans[a - 1]) * 2 + ans[a - 1]; return; } vector<int> find_routers(int l, int n, int q) { for(int i = 0; i < n; i++) rb[i] = l; ans[0] = 0; for(int i = 1; i < n; i++) search(i); vector<int> rt; for(int i = 0; i < n; i++) rt.emplace_back(ans[i]); return rt; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...