#include <bits/stdc++.h>
using namespace std;
//#define int long long
#define fi first
#define se second
#define all(a) a.begin(),a.end()
const int maxn = 2 * 1e6;
const int mod = 1e9 + 7;
vector <int> bin = {1};
int que(int in ,int st,int en){
cout<<bin.size() + 1<<' '<<in<<' ';
for(int i = st;i <= en;i++)cout<<bin[i]<<' ';
cout<<endl;
int an;
cin>>an;
return an;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin>>n;
vector <int> ans(n + 1, 0);
ans[1] = 1;
for(int i = 2;i <= n;i++){
int c = que(i, 0, bin.size() - 1);
if(c > bin.size()){
bin.push_back(i);
ans[i] = bin.size();
continue ;
}
int st = 0,en = bin.size() - 1,mid;
while(st <= en){
mid = (st + en )/2;
c = que(i ,st , mid);
if(c == (mid-st+1)){
en = mid - 1;
ans[i] = ans[mid + 1];
}
else{
st = mid + 1;
}
}
}
cout<<0<<' ';
for(int i = 1;i <= n;i++)cout<<ans[i]<<' ';
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... |