#include <bits/stdc++.h>
#include "routers.h"
using namespace std;
vector<int> find_routers(int l, int n, int q){
vector<int> ans(n, 0);
if (n == 2){
int lo = 0, hi = l + 1;
while (hi - lo > 1){
int mid = lo + (hi - lo) / 2;
if (use_detector(mid) == 0)
lo = mid;
else
hi = mid;
}
ans[1] = 2 * lo;
return ans;
}
for (int i = 1; i < n; i ++){
int last = ans[i - 1], cur = 64;
while (last + cur <= l and use_detector(last + cur) == i - 1)
cur += 64;
int lo = last + cur - 64, hi = min(l + 1, last + cur);
while (hi - lo > 1){
int mid = (lo + hi) / 2;
if (use_detector(mid) == i - 1)
lo = mid;
else
hi = mid;
}
ans[i] = 2 * lo - last;
}
return ans;
}
# | 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... |