# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1230148 | lioow | Finding Routers (IOI20_routers) | C++20 | 0 ms | 0 KiB |
#include "routers.h"
#include <vector>
#include <cassert>
#include <cstdio>
#include <algorithm>
using namespace std;
std::vector<int> find_routers(int le, int n, int q) {
vector<int>ans(n);
ans[0]=0;
for(int i=1;i<=n-1;i++){
int l=ans[i-1]+1;
int r=le-1;
int an=-1;
int lol=-1;
while(l<r){
int mid=(l+r)/2;
int nw=use_detector(mid);
if(nw>=i){
an=mid;
r=mid-1;
} else {
if(nw==i-1) lol=ans[i-1]+2*(nw-ans[i-1]);
l=mid+1;
}
}
if(lol==-1) ans[i]=nw;
else ans[i]=lol;
}
return ans;
}