Submission #1310111

#TimeUsernameProblemLanguageResultExecution timeMemory
1310111wangzhiyi33Carnival (CEOI14_carnival)C++20
100 / 100
6 ms400 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long 
#pragma GCC optimize("O3,unroll-loops")
#define pb push_back
#define fir first
#define sec second
#define ii pair<int,int>
vector<int>idx;

int query(int a,int b){
    cout<<a+2<<" ";
    for(int q=0;q<=a;q++){
        cout<<idx[q]<<" ";
    }
    cout<<b<<" ";
    cout<<endl;
    int brp; cin>>brp;
    return brp;
}

signed main(){
    int n; cin>>n;
    int ans[n+1];
    idx.pb(1); ans[1]=1;

    for(int q=2;q<=n;q++){
        int l=0,r=idx.size()-1;
        int mana=-1;
        while(l<=r){
            int mid=(l+r)/2;
            int brp=query(mid,q);
            if(brp==mid+2){
                l=mid+1;
            }
            else{
                mana=mid; r=mid-1;
            }
        }
        if(mana==-1){
            ans[q]=idx.size()+1;
            idx.push_back(q);
        }
        else{
            ans[q]=ans[idx[mana]];
        }
    }

    cout<<0;
    for(int q=1;q<=n;q++){
        cout<<" "<<ans[q];
    }
    cout<<endl;
}
#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...