Submission #1157579

#TimeUsernameProblemLanguageResultExecution timeMemory
1157579ocasuCarnival (CEOI14_carnival)C++20
100 / 100
10 ms408 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

int ask(int i, int j, int f){
    //cout<<f<<'\n';
    cout<<j-i+1<<' ';
    for (int x=i; x<=j; x++) {
        cout<<x;
        if (x<j) cout<<' ';
    }
    cout<<endl;
    int ans; cin>>ans;
    return ans;
}

signed main(){
    int n; cin>>n;
    vector<int> col(n+1,0);
    int cur=0;
    for (int i=1; i<n; i++){
        int a = i+1, b = n+1; 
        bool good=false;
        while (a != b) { 
            int mid = (a+b)/2; 
            int que=ask(i,mid,i);
            if (que==ask(i+1,mid,i)) { 
                good=true;
                b = mid; 
            }
            else { 
                a = mid+1; 
            }
        }
        if (col[i]==0) col[i]=++cur;
        if (good) col[a]=col[i];
    }
    cout<<0<<' ';
    if (col[n]==0) col[n]=++cur;
    for (int i=1; i<=n; i++){
        cout<<col[i]<<' ';
    }
    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...