# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1200508 | eyadooz | Finding Routers (IOI20_routers) | C++20 | 0 ms | 0 KiB |
#include "bits/stdc++.h"
// #include "routers.h"
using namespace std;
int use_detector(int x){
cout << x << endl;
int y;
cin >> y;
return y;
}
std::vector<int> find_routers(int len, int n, int q){
vector<int>p;
p.push_back(0);
int remember[100005];
for(int i = 0;i < 100005;i++) remember[i]=-1;
for(int i = 0; i < n - 1; i++){
int l = p.back() + 1, r = ((len - p.back() - (n - i - 2) * 2) / 2) + p.back();
// cout << r << ' ';
while(l < r){
int mid = (l + r) / 2;
if(remember[mid] == -1) remember[mid] = use_detector(mid);
if(remember[mid] != i) r = mid;
else l = mid + 1;
}
l--;
p.push_back(l + (l - p.back()));
}
return p;
}
signed main()
{
vector<int>ans = find_routers(6, 3, 0);
for(int i : ans) cout << i << ' ';
}