Submission #1310108

#TimeUsernameProblemLanguageResultExecution timeMemory
1310108eyadoozCarnival (CEOI14_carnival)C++20
100 / 100
3 ms428 KiB
#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[v[l]];
        }
    }
    cout << "0 ";
    for(auto i : color) cout << i << " ";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...