제출 #385701

#제출 시각아이디문제언어결과실행 시간메모리
385701taulantFinding Routers (IOI20_routers)C++14
100 / 100
7 ms1132 KiB
#include "bits/stdc++.h" using namespace std; typedef pair<int, int> pii; int use_detector(int); vector<int> find_routers(int l, int n, int q){ set<pii> s; s.insert({0,0}); s.insert({n,l}); map<int, int> m; vector<int> ret(n); // ret[0] = 0 for(int i = 1; i < n; ++i){ int lo = ret[i-1], hi = l; auto ir = s.lower_bound({i, 0}), il = ir; --il; lo = max(lo, il -> second), hi = min(hi, ir -> second); while(lo < hi){ int mid = (lo + hi + 1) / 2; int x = m.count(mid)? m[mid] : use_detector(mid); s.insert({x, mid}); m[mid] = x; if(x < i) lo = mid; else hi = mid - 1; } ret[i] = lo + lo - ret[i-1]; } return ret; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...