This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
int query(int L, int R) {
cout << R-L+1;
for(int i=L; i<=R; i++) cout << " " << i;
cout << "\n";
fflush(stdout);
int res;cin >> res;return res;
}
int main() {
int N; cin >> N;
int ans[N+1];
ans[1] = 1;
int now = 2;
for(int i=2; i<=N; i++) {
if(query(1, i) != query(1, i-1)) {
ans[i] = now++;
}
else {
int lb = 1, rb = i-1;
while(lb < rb) {
int mid = (lb+rb+1) / 2;
if(query(mid, i-1) != query(mid, i)) {
rb = mid-1;
}
else {
lb = mid;
}
}
ans[i] = ans[lb];
}
}
cout<<0;
for(int i=1; i<=N; i++)cout << " " << ans[i];
cout << "\n";
}//R...i
# | 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... |