제출 #1189752

#제출 시각아이디문제언어결과실행 시간메모리
1189752boclobanchat사육제 (CEOI14_carnival)C++20
100 / 100
12 ms412 KiB
#include<bits/stdc++.h> using namespace std; const int MAXN=155; int ans[MAXN],dsu[MAXN],val[MAXN]; int root(int i) { if(!dsu[i]) return i; return dsu[i]=root(dsu[i]); } void merge(int i,int j) { if((i=root(i))==(j=root(j))) return ; dsu[j]=i; } int ask(int l,int r) { cout<<r-l+1<<" "; for(int i=l;i<=r;i++) cout<<i<<" "; cout<<endl; fflush(stdout); int res; cin>>res; return res; } int main() { int n; cin>>n; for(int i=1;i<n;i++) { int l=i+1,r=n,pos=n+1; while(l<=r) { int mid=(l+r)/2; if(ask(i,mid)==ask(i+1,mid)) r=mid-1,pos=mid; else l=mid+1; } if(pos<=n) merge(i,pos); } for(int i=1;i<=n;i++) ans[i]=root(i),val[i]=ans[i]; sort(val+1,val+n+1); int m=0; for(int i=1;i<=n;i++) if(val[i]!=val[m]) val[++m]=val[i]; cout<<"0 "; for(int i=1;i<=n;i++) cout<<lower_bound(val+1,val+m+1,ans[i])-val<<" "; fflush(stdout); }
#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...