Submission #374216

#TimeUsernameProblemLanguageResultExecution timeMemory
374216MilosMilutinovicCarnival (CEOI14_carnival)C++14
100 / 100
11 ms492 KiB
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
const int N=200;
int ans[N];
vector<int> dif;
void Add(int i){
    cout<<(int)dif.size()+1<<" ";
    for(int j:dif)cout<<j<<" ";
    cout<<i<<endl;
    int sz;cin>>sz;
    if(sz>(int)dif.size())ans[i]=sz,dif.pb(i);
}
bool Can(int pos,int j){
    cout<<pos+2<<" ";
    for(int i=0;i<=pos;i++)cout<<dif[i]<<" ";
    cout<<j<<endl;
    int sz;cin>>sz;
    return sz<pos+2;
}
int main(){
    int n;cin>>n;
    for(int i=1;i<=n;i++)Add(i);
    for(int i=1;i<=n;i++){
        if(ans[i])continue;
        int bot=0,top=(int)dif.size()-1,pos=0;
        while(bot<=top){
            int mid=bot+top>>1;
            if(Can(mid,i))pos=mid,top=mid-1;
            else bot=mid+1;
        }
        ans[i]=ans[dif[pos]];
    }
    cout<<0<<" ";
    for(int i=1;i<=n;i++)cout<<ans[i]<<" ";
    cout<<endl;
    return 0;
}

Compilation message (stderr)

carnival.cpp: In function 'int main()':
carnival.cpp:28:24: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   28 |             int mid=bot+top>>1;
      |                     ~~~^~~~
#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...