#include "routers.h"
#include<bits/stdc++.h>
using namespace std;
int N,L;
int qr[1000005];
int Use_detector(int x){
//cerr<<x<<"\n";
if(x>=L)return N-1;
if(qr[x]!=-1)return qr[x];
return qr[x]=use_detector(x);
}
int sz=100;
int lg[100005];
std::vector<int> find_routers(int l, int n, int q) {
for(int i=0;i<=1e5;i++)qr[i]=-1;
lg[1]=0;
for(int i=2;i<=1e5;i++)lg[i]=lg[i/2]+1;
N=n;
L=l;
int id = 0;
vector<int> ans;
ans.push_back(0);
int prv=0;
sz=lg[l/n];
sz=(1<<sz);
for(int i=1;i<n;i++){
int mx=sz;
for(;Use_detector(prv+mx)==i-1;mx+=sz);
int dis=0;
//cerr<<mx<<"\n";
for(int j=lg[mx];j>=0;j--){
if(Use_detector(prv+dis+(1<<j))==i-1)dis+=(1<<j);
}
prv=prv+dis*2;
//cerr<<prv<<"\n";
ans.push_back(prv);
}
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... |