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