Submission #1236723

#TimeUsernameProblemLanguageResultExecution timeMemory
1236723em4ma2Carnival (CEOI14_carnival)C++20
0 / 100
3 ms428 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back #define ll long long const int off=1<<19; const int inf=1e9+4; const int mxsz=2e5+4; vector<int>un; vector<int>ch; int q(int k,vector<int>a){ cout<<k<<" "; for (auto x:a){ cout<<x<<" "; }cout<<flush; int x=0; if (k!=0){ cin>>x; } return x; } int main(){ int n; cin>>n; int x; ch.pb(1); un.pb(1); vector<int>adj[n+1]; int ans[n+1]={}; for (int i=2;i<=n;i++){ ch.pb(i); x=q(ch.size(),ch); // if (i==5){ // cout<<x<<" "<<un.size()<<" "<<ch.size()<<endl; // for (auto x:un){ // cout<<x<<" "; // }cout<<endl; // } if (x==un.size()+1){ un.pb(i); }else if (x==un.size()){ int l=0,r=un.size()-1; vector<int>fi; while (l<=r){ int mid=(l+r)/2; vector<int>no; for (int j=l;j<=mid;j++){ no.pb(un[j]); } no.pb(i); if (q(no.size(),no)==no.size()-1){ fi=no; r=mid-1; }else{ l=mid+1; } } adj[fi[0]].pb(i); } } int cnt=1; for (int i=1;i<=n;i++){ if (ans[i]==0){ ans[i]=cnt; cnt++; } for (auto x:adj[i]){ ans[x]=ans[i]; } } vector<int>out; for (int i=1;i<=n;i++){ out.pb(ans[i]); } q(0,out); 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...