Submission #229570

#TimeUsernameProblemLanguageResultExecution timeMemory
229570dvdg6566Carnival (CEOI14_carnival)C++14
100 / 100
30 ms512 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<ll> vi;
typedef pair<ll,ll> pi;
typedef vector<pi> vpi;
typedef long double ld;
#define pb emplace_back
#define mp make_pair
#define lb lower_bound
#define ub upper_bound
#define ALL(x) x.begin(), x.end()
#define SZ(x) (ll)x.size()
#define f first
#define s second
const ll MAXN = 300100;
const ll INF = 1e18;
const ll MOD = 1e9+7;

int out[MAXN],N;

int chk(int s, int e, int v){
    int l=(e-s+1);
    if(v!=-1)++l;
    if(l==1)return 1;
    cout<<l<<' ';
    for(int i=s;i<=e;++i)cout<<i<<' ';
    if(v!=-1)cout<<v<<' ';
    cout<<endl;
    int t;cin>>t;
    return t;
}

int ask(int s, int e, int v){
    if(s==e){return out[s];}
    int m=(s+e)/2;
    if (chk(s,m,v) == chk(s,m,-1))return ask(s,m,v);
    else return ask(m+1,e,v);
}

int main(){
    //ios_base::sync_with_stdio(0);cin.tie(0);
    cin>>N;
    out[1]=1;
    int l=2;
    for(int i=2;i<=N;++i){
        if(chk(1,i-1,i) != chk(1,i-1,-1)){
            out[i]=l++;
            continue;
        }
        out[i]=ask(1,i-1,i);
    }
    cout<<0<<' ';for(int i=1;i<=N;++i)cout<<out[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...