#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define sz(x) (int) (x).size()
#define endl '\n'
int ask(vector<int> v)
{
cout << sz(v) << " ";
for(auto i : v) cout << i+1 << " ";
cout << endl << flush;
int x;
cin >> x;
return x;
}
int main()
{
cin.tie(0) -> sync_with_stdio(0);
int n;
cin >> n;
int color[n]={};
color[0]=1;
int j1=2;
vector<int> v;
v.pb(0);
for(int i = 1;i < n;i++)
{
v.pb(i);
if(ask(v)==sz(v))
{
color[i]=j1;
j1++;
}
else
{
v.pop_back();
int l=0, r=sz(v);
while(l<r)
{
int mid=(l+r)/2;
vector<int> nv;
for(int i = l;i <= mid;i++) nv.pb(v[i]);
nv.pb(i);
if(ask(nv)==sz(nv)) l=mid+1;
else r=mid;
}
color[i]=color[l];
}
}
for(auto i : color) cout << 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... |