Submission #1255425

#TimeUsernameProblemLanguageResultExecution timeMemory
1255425robijoyFinding Routers (IOI20_routers)C++17
70.13 / 100
1 ms328 KiB
/* * Starting with the name of almighty ALLAH */ #include "routers.h" // #include <bits/stdc++.h> using namespace std; // #define int long long // vector<int> p = {0,6,8}; // int use_detector(int x) // { // vector<int>::iterator left, right; // right = upper_bound(p.begin(), p.end(), x); // left = prev(right); // if (right == p.end()) { // return p.size() - 1; // } else if ((x - *left) <= (*right - x)){ // return std::distance(p.begin(), left); // } else { // return std::distance(p.begin(), right); // } // } vector<int> find_routers(int size, int n, int q) { vector<int> ans; ans.push_back(0); int last = 0; for (int i = 0; i < n-1; ++i) { int l = ans[ans.size()-1]+1, r = size; int an = 0; while(l<=r) { int mid = (l+r)>>1; int x = use_detector(mid); if(x == last) { l = mid+1; }else{ an = mid; r = mid-1; } } int lasti = ans[ans.size()-1]; int dis = an - lasti; dis--; ans.push_back(lasti+(dis*2)); last++; } return ans; } // int32_t main() { // ios::sync_with_stdio(false); // cin.tie(0); // int l, n, q; // cin>>l>>n>>q; // vector<int> robi = find_routers(l,n,q); // for (int i = 0; i < robi.size(); ++i) // { // cout<<robi[i]<<' '; // } // }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...