제출 #1210717

#제출 시각아이디문제언어결과실행 시간메모리
1210717jellybean사육제 (CEOI14_carnival)C++20
0 / 100
2 ms412 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pii pair<int,int> #define fi first #define se second #define pb push_back #define dd(x) cout<<#x<<" is "<<x<<endl; int n; vector<int>v; bool submit = 1; int arr[200]; int qq(vector<int>vi){ if(submit){ cout << vi.size() << ' '; for(auto i: vi) cout<<i+1<<' '; cout<<endl; int res; cin>>res; return res; } else { set<int>s; for(int i=0; i<vi.size(); i++){ s.insert(arr[vi[i]]); } return s.size(); } } int query(int l, int r, int x){ int sz = r-l+1; if(sz == 1){ return l; } int m = (l+r)/2; vector<int>in; for(int i=l; i<=m; i++) in.pb(v[i]); in.pb(x); int res = qq(in); if(res == (sz+1)/2 + 1){ return query(m+1,r,x); } else { return query(l,m,x); } } signed main(){ //ios::sync_with_stdio(0); cin.tie(0); mt19937_64 rnd(chrono::high_resolution_clock::now().time_since_epoch().count()); if(submit) cin>>n; else { n = rnd()%5+2; int c = rnd()%n+1; for(int i=0; i<n; i++) arr[i] = rnd()%c+1, cout<<arr[i] <<" "; } int ans[n] = {}; ans[0] = 1; v.pb(0); for(int i=1; i<n; i++){ vector<int>in; for(auto j: v) in.pb(j); in.pb(i); int res = qq(in); if(res == (int)v.size() + 1) { ans[i] = v.size() + 1; v.push_back(i); continue; } ans[i] = ans[query(0,v.size()-1,i)]; } cout<<0<<' '; for(auto i: ans) cout<<i<<" "; cout<<endl; 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...