# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
904935 | 2024-01-12T11:37:50 Z | dsyz | 사육제 (CEOI14_carnival) | C++17 | 0 ms | 0 KB |
#include <bits/stdc++.h> using namespace std; using ll = long long; #define MAXN (1000005) int main() { ios_base::sync_with_stdio(false);cin.tie(0); ll N; cin>>N; vector<ll> unique; //exactly 1 representative from all different type of costumes for(ll i = 1;i <= N;i++){ //1-indexed cout<<unique.size() + 1<<" "; for(auto u : unique){ cout<<u<<" "; } cout<<i<<endl; ll diff; cin>>diff; if(diff == ll(unique.size()) + 1){ unique.push_back(i); } } vector<ll> ans; for(ll i = 1;i <= N;i++){ ll L = 0; ll R = unique.size() - 1; ll times = 0; while(L != R){ ll mid = (L + R) / 2; time++; assert(times <= 20); assert(L < R); cout<<(mid - L + 1) + 1<<" "; for(ll j = L;j <= mid;j++){ cout<<unique[j]<<" "; } cout<<i<<endl; ll diff; cin>>diff; if(diff <= (mid - L + 1) + 1){ R = mid; }else{ L = mid + 1; } } ans.push_back(L); } cout<<0<<" "; for(auto u : ans){ cout<<u + 1<<" "; } cout<<endl; }