#include "routers.h"
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
std::vector<int> find_routers(int L,int N,int Q) {
ll T = L / (N - 1) - 30;
vector<int> ret(N,-1);
ret[0] = 0;
vector<ll> ans = {0};
while((ll)ans.size() < N){
ll l = ret[ans.back()] + 1,r = min((ll)L,l + T),k = -1;
while(1){
ll res = use_detector(r);
if(res == ans.back()) r = min((ll)L,r + T);
else{
k = res;
break;
}
}
while(r - l > 1){
ll m = (l + r) / 2;
ll res = use_detector(m);
if(res == ans.back()) l = m;
else{
r = m;
k = res;
}
}
ll dis = l - ret[ans.back()];
ans.emplace_back(k);
// cerr << k << " " << l + dis << endl;
ret[k] = l + dis;
}
return ret;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |