Submission #1220203

#TimeUsernameProblemLanguageResultExecution timeMemory
1220203lukasuliashviliCarnival (CEOI14_carnival)C++20
100 / 100
2 ms416 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define rep(i,a,b) for(int i=a;i<=b;i++)
const int N=2e6;
int ans[N];
vector<int> vec;

void que(int idx){
    cout<<vec.size()+1<<" ";
    for(auto x:vec) cout<<x<<" ";
    cout<<idx<<endl;
    cout.flush();
}

int binary(int idx){
    int l=0,r=vec.size()-1,res=-1;
    while(l<=r){
        int mid=(l+r)/2;
        cout<<mid-l+2<<" ";
        for(int i=l;i<=mid;i++) cout<<vec[i]<<" ";
        cout<<idx<<endl;
        cout.flush();
        int raod;
        cin>>raod;
        if(raod==mid-l+2){
            l=mid+1;
        }else{
            res=mid;
            r=mid-1;
        }
    }
    return ans[vec[res]];
}

signed main(){
    int n;
    cin>>n;
    vec.pb(1);
    ans[1]=1;
    rep(i,2,n){
        que(i);
        int raod;
        cin>>raod;
        if(raod==vec.size()+1){
            vec.pb(i);
            ans[i]=vec.size();
        }else{
            ans[i]=binary(i);
        }
    }
    cout<<0<<" ";
    rep(i,1,n) cout<<ans[i]<<" ";
    cout<<endl;
    cout.flush();
    return 0;
}
#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...