#include <iostream>
#include <vector>
using namespace std;
#define pb push_back
vector<int> v;
bool query(int l, int r, int i) {
int sz = r-l+2;
cout << sz << ' ';
for(int k : v) cout << k << ' ';
cout << i << endl;
cout << flush;
int rep; cin >> rep;
return (rep==sz); //if true: i is a new type
}
int main() {
int n; cin >> n;
int c = 1;
int ans[n+1]; ans[1] = 1;
for(int i = 2; i <= n; i++) {
int l = 0, r = v.size() - 1;
if(query(l, r, i)) {
c++;
ans[i] = c;
continue;
}
while(l <= r) {
int mid = (l+r)/2;
if(query(l, mid, i)) l = mid+1;
else r = mid - 1;
}
ans[i] = ans[v[l]];
}
cout << 0 << ' ';
for(int k : ans) cout << k << ' ';
cout << endl << flush;
return 0;
}
# | 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... |