제출 #1281359

#제출 시각아이디문제언어결과실행 시간메모리
1281359muhammad-ahmad사육제 (CEOI14_carnival)C++20
0 / 100
2 ms336 KiB
#include <bits/stdc++.h> using namespace std; #define int long long void query(vector<int> a){ cout << a.size() << ' '; for (auto i : a) cout << i << ' '; cout << endl; } int ans(){ int x; cin >> x; return x; } void solve(){ int n; cin >> n; int lst = 0; vector<int> dist; for (int i = 1; i <= n; i++){ dist.push_back(i); query(dist); int x = ans(); if (x == lst) dist.pop_back(); else lst = x; } int val[n + 1] = {}; for (int i = 0; i < (int) dist.size(); i++) val[dist[i]] = i + 1; for (int i = 1; i <= n; i++){ if (val[i] > 0) continue; int l = 0, r = dist.size() - 1; while (r > l){ int m = (l + r) / 2; vector<int> q = {i}; for (int j = l; j <= m; j++) q.push_back(dist[j]); query(q); int x = ans(); if (x == m - l + 1){ r = m; } else l = m + 1; } val[i] = val[l + 1]; } for (int i = 1; i <= n; i++) cout << val[i] << ' '; cout << endl; } signed main(){ int tc = 1; // cin >> tc; while (tc--){ 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...