#include <bits/stdc++.h>
#ifdef MINA
#include "grader.cpp"
#endif
#include "routers.h"
using namespace std;
#define ll long long
#define SZ(x) (int) x.size()
vector<int> find_routers(int len, int n, int q) {
array<int, 2> mn = {int(1e9), -1};
for (int b = 1; b <= len; b++) {
mn = min(mn, (array<int, 2>) {n * (__lg(b) + 2) + len / b, b});
}
int b = mn[1];
vector<int> p = {0};
for (int st = 1; st <= len && SZ(p) < n; st += b) {
int en = min(st + b - 1, len);
if (en < p.back() + 1) continue;
while (SZ(p) < n && (en == len || use_detector(en) >= SZ(p))) {
int l = p.back() + 1, r = en;
while (l <= r) {
int md = ((l + r) >> 1);
if (use_detector(md) >= SZ(p)) {
r = md - 1;
} else {
l = md + 1;
}
}
l--;
p.push_back(l + l - p.back());
}
}
return p;
}
# | 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... |