Submission #1201093

#TimeUsernameProblemLanguageResultExecution timeMemory
1201093hackstarFinding Routers (IOI20_routers)C++20
70.38 / 100
1 ms328 KiB
#include "routers.h"
#include<bits/stdc++.h>

using namespace std;

vector<int> find_routers(int l, int n, int q) {
	vector<int>ans(n);
	ans[0]=0;
	for(int i=1;i<n;i++){
		int step=1;
		int x=ans[i-1]+1;
		while(x<=l&&use_detector(x)==i-1){
			step*=12;
			x=min(ans[i-1]+step,l);
		}
		int lx=ans[i-1]+step/12,rx=x;
		int cur=lx;
		while(lx<=rx){
			int m=lx+rx>>1;
			int id=use_detector(m);
			if(id==i-1){
				cur=m;
				lx=m+1;
			}
			else{
				rx=m-1;
			}
		}
		cur*=2;
		cur-=ans[i-1];
		ans[i]=cur;
	}
	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...