#include <bits/stdc++.h>
#include "library.h"
using namespace std;
void Solve(int n){
vector<int> a(n);
iota(a.begin(),a.end(),0);
auto del=[&](int x){
a.erase(a.begin()+x);
};
vector<int> qr(n,1);
int st=-1;
for(int i=0;i<n;i++){
qr[i]=0;
if(Query(qr)==1){
st=i;
break;
}
qr[i]=1;
}
del(st);
vector<int> ans{st};
for(int t=1;t<n;t++){
int l=0,r=a.size()-1;
while(l<r){
int m=(l+r)/2;
qr.assign(n,0);
for(int i=0;i<=m;i++)qr[a[i]]=1;
int res=Query(qr);
qr[ans.back()]=1;
if(Query(qr)==res)r=m;
else l=m+1;
}
ans.emplace_back(a[l]);
del(l);
}
for(auto &x:ans)x++;
Answer(ans);
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
22 ms |
436 KB |
# of queries: 2387 |
2 |
Correct |
26 ms |
436 KB |
# of queries: 2433 |
3 |
Correct |
25 ms |
432 KB |
# of queries: 2638 |
4 |
Correct |
23 ms |
436 KB |
# of queries: 2593 |
5 |
Correct |
22 ms |
436 KB |
# of queries: 2504 |
6 |
Correct |
21 ms |
432 KB |
# of queries: 2553 |
7 |
Correct |
24 ms |
436 KB |
# of queries: 2568 |
8 |
Correct |
21 ms |
432 KB |
# of queries: 2402 |
9 |
Correct |
22 ms |
436 KB |
# of queries: 2512 |
10 |
Correct |
14 ms |
432 KB |
# of queries: 1478 |
11 |
Runtime error |
0 ms |
432 KB |
Execution killed with signal 13 |
12 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
22 ms |
436 KB |
# of queries: 2387 |
2 |
Correct |
26 ms |
436 KB |
# of queries: 2433 |
3 |
Correct |
25 ms |
432 KB |
# of queries: 2638 |
4 |
Correct |
23 ms |
436 KB |
# of queries: 2593 |
5 |
Correct |
22 ms |
436 KB |
# of queries: 2504 |
6 |
Correct |
21 ms |
432 KB |
# of queries: 2553 |
7 |
Correct |
24 ms |
436 KB |
# of queries: 2568 |
8 |
Correct |
21 ms |
432 KB |
# of queries: 2402 |
9 |
Correct |
22 ms |
436 KB |
# of queries: 2512 |
10 |
Correct |
14 ms |
432 KB |
# of queries: 1478 |
11 |
Runtime error |
0 ms |
432 KB |
Execution killed with signal 13 |
12 |
Halted |
0 ms |
0 KB |
- |