# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
581634 | zaneyu | Finding Routers (IOI20_routers) | C++14 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "routers.h"
#include<bits/stdc++.h>
using namespace std;
#define f first
#define s second
map<int,int> mp;
void find_lampposts(int L, int N, int A[]) {
A[0]=0;
for(int i=1;i<N;i++){
int l=A[i-1],r=L;
for(auto x:mp){
if(x.s==i-1) l=x.f;
}
for(auto x:mp){
if(x.s>=i){
r=x.f;
break;
}
}
while(l<r){
int mid=(l+r+1)/2;
if(!mp.count(mid)) mp[mid]=nearest_lamppost(mid);
if(mp[mid]==i-1) l=mid;
else r=mid-1;
}
A[i]=A[i-1]+(l-A[i-1])*2;
}
}