Submission #239852

#TimeUsernameProblemLanguageResultExecution timeMemory
239852brainwaregoCarnival (CEOI14_carnival)C++14
100 / 100
14 ms384 KiB
#include <bits/stdc++.h> using namespace std; int group[160] = {0, 1}; int entry[160] = {1}, en = 1, arr[160]; int party(int len, int*ap){ cout<<len<<" "; for(int i=0;i<len;++i) cout<<ap[i]<<" "; cout<<"\n"; int response; cin>>response; return response; } int bsearch(int s, int e, int tg){ int i, m, ans = s, ed; while(s <= e){ m = (s + e) / 2; ed = m - s + 1; for(i=0;i<ed;++i) arr[i] = entry[s+i]; arr[ed] = tg; if(party(ed+1, arr) < ed+1){ ans = m, e = m-1; } else s = m+1; } return group[entry[ans]]; } int main(){ int N; cin>>N; for(int i=2;i<=N;++i){ entry[en] = i; if(party(en+1, entry)==en+1){ group[i] = ++en; continue; } int gnum = bsearch(0, en-1, i); group[i] = gnum; } cout<<"0 "; for(int i=1;i<=N;++i) cout<<group[i]<<" "; cout<<"\n"; return 0; }
#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...