Submission #1192121

#TimeUsernameProblemLanguageResultExecution timeMemory
1192121ftmCarnival (CEOI14_carnival)C++20
100 / 100
6 ms432 KiB
#include<bits/stdc++.h>
using namespace std;
const int N=155;
int a[N];

int F(int l,int r){
    int x;
    cout << r-l+1 << ' ';
    for(int i=l;i<=r;i++) cout << i << ' ';
    cout << endl<<flush;
    cin >> x;
    return x;
}

int main(){
    ios::sync_with_stdio(0); cin.tie(0);
    int n,cnt=1;
    cin >> n;
    a[1]=1;
    for(int i=2;i<=n;i++){
        int x=F(1,i);
        if(x!=cnt){
            a[i]=++cnt;
        }
        else{
        	/*
            int l=1,r=i-1;
            while(l<r){
                int mid=(l+r)/2;
                int t=F(mid,i),y=F(mid,i-1);
                if(t==y) l=mid+1;
                else r=mid-1;
            }
            a[i]=a[l-1];
            */
            int l=1,r=i-1;
            while(l<r){
            	int mid=(l+r)/2;
            	int t=F(i-mid,i);
				int y=F(i-mid,i-1);
            	if(t==y) r=mid;
            	else l=mid+1;
			}
			a[i]=a[i-l];
        }
        //cout<<"a["<<i<<"] = "<<a[i]<<"\n";
    }
    cout << "0 ";
    for(int i=1;i<=n;i++) cout << a[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...