제출 #1255025

#제출 시각아이디문제언어결과실행 시간메모리
1255025Nurislam사육제 (CEOI14_carnival)C++20
100 / 100
3 ms408 KiB
#include <bits/stdc++.h> using namespace std; //const int mod = 998244353; #define int long long const long long inf = 5e18; void solve() { int n; cin >> n; vector<int> ans(n+1, 0), v; for(int i = 1; i <= n; i ++ ) v.push_back(i); int c = -1; for(int i = n; i >= 1; i -- ) { cout << v.size() << ' '; for(int i : v)cout << i << ' '; cout << endl; int x; cin >> x; if(c == -1) c = x; if(c != x) ans[i+1] = c--; v.pop_back(); }; ans[1] = 1; v.push_back(0); for(int i = 1; i <= n; i ++ ) if(ans[i])v.push_back(i); function<int(int ,int, int) > dc = [&](int l,int r,int x) { if(l == r) return ans[v[l]]; int m = (l+r) >> 1; int lf = m-l+1; vector<int> ask(1,x); for(int i = l; i <= m; i ++ ) ask.push_back(v[i]); cout << ask.size() << ' '; for(int &i : ask)cout << i << ' '; cout << endl; int an;cin >> an; if(an != lf) return dc(m+1, r, x); return dc(l, m, x); }; for(int i = 1; i <= n; i ++ ) { if(ans[i])continue; ans[i] = dc(1, v.size(), i); }; for(int i : ans)cout << i << ' '; cout << endl; }; signed main() { //ios_base::sync_with_stdio(false); //cin.tie(nullptr); cout.tie(nullptr); int tt = 1; //cin >> tt; while(tt--) { solve(); }; };
#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...