제출 #245667

#제출 시각아이디문제언어결과실행 시간메모리
245667hohohaha사육제 (CEOI14_carnival)C++14
100 / 100
20 ms504 KiB
#include<bits/stdc++.h> using namespace std; #define vi vector<int> #define vii vector<pair<int, int> > #define fi first #define se second int diff[155][155]; int col[155]; int rep, n; void ask(int l, int r, int add) { cout<<r-l+2<<" "; for(int i=l; i<=r; i++) { cout<<i<<" "; } cout<<add<<"\n"; fflush(stdout); cin>>rep; } void ans() { cout<<0<<" "; for(int i=1; i<=n; i++) cout<<col[i]<<' '; cout<<endl; fflush(stdout); } signed main() { int cnt=0; cin>>n; for(int i=1; i<=n; i++) { if(i==1) { diff[1][1]=1; col[1]=++cnt; } else { int ll = 1, rr = i-1; while(ll<rr) { int mid = (ll+rr)/2; ask(ll, mid, i); if(rep==diff[ll][mid]) rr = mid; else ll=mid+1; } ask(ll,ll, i); if(rep==diff[ll][ll]) col[i]=col[ll]; else col[i]=++cnt; set<int> s; for(int j=i; j>=1; j--) { s.insert(col[j]); diff[j][i]=s.size(); } } } ans(); }
#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...