| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 1230156 | djsksbrbf | Finding Routers (IOI20_routers) | C++20 | 0 ms | 0 KiB | 
#include "routers.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> find_routers(int l, int n, int q) {
	pair <long long, long long> p[n + 1];
	long long prev = 1;
	
	vector <long long> ans;
	for(int i = 0 ; i < n - 1 ; i++){
		long long l = prev, r = l;
		
		long long tmp = -1;
		while(l <= r){
			long long mid = (l + r) >> 1;
			if(use_detector(mid) != i)r = mid - 1;
			else{
				tmp = mid;
				l = mid + 1;
			}
		}
		
		p[i] = {prev, tmp};
		prev = tmp + 1;
	}
	
	p[n - 1] = {prev, l};
	vector <long long> v;	v.push_back(0);
	
	for(int i = 1 ; i < n ; i++){
		pair <long long, long long> cur = p[i], prev = p[i - 1];
		long long prv = v.back();
		
		v.push_back(cur.first - prv + prev.second - 1);
	}
	
	return v;
}
