#include "routers.h"
#include <bits/stdc++.h>
#define _ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define fore(i,a,b) for(lli i = (a), abcdxd = (b); i < abcdxd; i++)
#define f first
#define s second
#define ENDL '\n'
#define pb push_back
#define sz(s) lli((s).size())
#define all(v) (v).begin(), (v).end()
#define rall(v) (v).rbegin(), (v).rend()
using namespace std;
typedef int lli;
// typedef long long LLI;
typedef pair<lli,lli> ii;
typedef vector<lli> vi;
typedef vector<ii> vii;
typedef long double ld;
#define deb(x) cout << #x << ": " << x << endl;
#define BIGLLI __int128
typedef vector<vi> mtrx;
const lli INF = 1e9 + 12;
const lli N = 1e5 + 5;
lli p[N];
// lli st = 0;
void dfs(lli l, lli r, lli lid, lli rid){
// cout << l << ' ' << r << endl;
p[lid] = max(p[lid], l);
p[rid] = max(p[rid], r);
// st++;
if (lid == rid) return;
if ((l + 1) >= r) return;
assert(l < r);
lli m = (r + l) / 2;
lli mid = use_detector(m);
dfs(l, m, lid, mid);
lli sid = use_detector(m+1);
dfs(m+1, r, sid, rid);
}
vector<int> find_routers(int l, int n, int q) {
// cout << "ini :)" << endl;
for (auto & i : p) i = -INF;
dfs(0, l, 0, n-1);
// deb(st);
vi ans(n);
ans[0] = 0;
// fore(i,0,n) cout << p[i] << endl;
fore(i,1,n){
ans[i] = ans[i-1] + (2 * (p[i - 1] - ans[i - 1]));
}
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... |