#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,b[200005],z;
ll ask (ll x,ll y)
{
cout << y-x+1 << ' ';
for (int i=x;i<=y;i++)
cout << i << " ";
cout << endl;
ll sx;
cin >> sx;
return sx;
}
map<ll,ll>mp;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
// freopen("nam.inp","r",stdin);
// freopen("nam.out","w",stdout);
cin >> n;
b[1]=++z;
for (int i=2;i<=n;i++)
{
ll ans=i;
ll l=1;
ll r=i-1;
while (l<=r)
{
ll mid = (l+r)/2;
ll sl = ask (mid,i);
ll d = 0;
for (int j=mid; j<i; j++)
if ( mp[b[j]] == 0 )
{
mp[b[j]] = 1;
d++;
}
mp.clear();
if (d==sl)
l = mid+1;
else
{
ans = min (ans, mid);
r = mid-1;
}
}
if (ans == 1)
b[i]= ++z;
else
b[i]= b[ans-1];
}
cout << 0 <<" ";
for (int i=1;i<=n;i++)
cout << b[i] << " ";
cout << endl;
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... |