#include "park.h"
#include<bits/stdc++.h>
using namespace std;
static int Place[1400];
void Detect(int T, int N) {
vector<int> all(N);
iota(all.begin() , all.end() , 0);
stable_sort(all.begin() , all.end() , [N](int a , int b){
if(a == b)
return 0;
if(a == 0)
return 1;
// a in path 0--b
if(b == 0)
return 0;
for(int i = 0 ; i < N ; i++)
Place[i] = 1;
Place[a] = 0;
// cout<<a<<" "<<b<<'\n';
int ret = (1 - Ask(0 , b , Place));
// cout<<a<<" "<<b<<" "<<ret<<'\n';
return ret;
});
// for(int i = 0 ; i < N ; i++)
// cout<<all[i]<<" ";
// cout<<'\n';
Answer(0 , all[1]);
for(int i = 2 ; i < N ; i++)
{
int l = 0 , r = i;
while(l + 1 < r)
{
int md = (l + r)>>1;
for(int j = 0 ; j < N ; j++)
Place[j] = 1;
for(int j = md ; j < i ; j++)
Place[all[j]] = 0;
assert(Place[0] == 1 && Place[all[i]] == 1);
bool check = Ask(0 , all[i] , Place);
if(check)
r = md;
else
l = md;
}
// cerr<<l<<" "<<i<<'\n';
int a = all[i] , b = all[l];
if(a > b)
swap(a , b);
Answer(a , b);
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |