Submission #1200140

#TimeUsernameProblemLanguageResultExecution timeMemory
1200140rayan_bdFinding Routers (IOI20_routers)C++20
0 / 100
0 ms328 KiB
#include <bits/stdc++.h>
#include "routers.h"

using namespace std;


std::vector<int> find_routers(int l, int n, int q){
	vector<int> ans={0};
	for(int i=0;i<n-1;++i){
		int st=ans.back()+1,en=l,cmid=0,mx2pw=0;
		for(int i=0;i<30&&((st+(1ll<<i))<=l);++i){
			if(use_detector((st+(1ll<<i)))==i){
				mx2pw=i;
			}
		}
		st+=(1ll<<(i-1)),en=(1ll<<i);
		while(st<=en){
			int mid=st+(en-st)/2;
			int curr=use_detector(mid);
			if(curr==i){
				st=mid+1;
				cmid=mid;
			}else{
				en=mid-1;
			}
		}
		ans.push_back(cmid*2-ans.back());
	}
	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...