Submission #1188711

#TimeUsernameProblemLanguageResultExecution timeMemory
1188711racha555Carnival (CEOI14_carnival)C++20
100 / 100
3 ms420 KiB
#include <bits/stdc++.h> using namespace std; vector<int> unq,a; int n; bool ask(vector<int> &arr,int start,int end,int late){ start--; cout<<end-start+1<<" "; for(int i=start;i<=end-1;i++){ cout<<unq[i]<<" "; } cout<<late<<" "; int n; cin>>n; if(n==end-start+1)return true; else{ return false; } } map<int,int> coss; int main(){ cin>>n; coss[1]=1; unq.emplace_back(1); for(int i=2;i<=n;i++){ if(ask(unq,1,unq.size(),i)){ unq.emplace_back(i); } } // cout<<0<<" "; int now=1; for(auto i:unq){ coss[i]=now++; } for(int i=1;i<=n;i++){ if(coss[i]==0){ int l=1,mid,r=unq.size(); int best=0; // cout<<"\n"<<r<<"\n"; while(l<=r){ mid=l+(r-l)/2; // cout<<r<<" "<<mid<<"\n"; if(mid<=0)break; if(!ask(unq,l,mid,i)){ best=r; if(l==r){ break; } r=mid; } else{ l=mid+1; } } coss[i]=coss[unq[best-1]]; } } cout<<0<<" "; for(int i=1;i<=n;i++){ cout<<coss[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...