Submission #1220196

#TimeUsernameProblemLanguageResultExecution timeMemory
1220196lukasuliashviliCarnival (CEOI14_carnival)C++20
100 / 100
2 ms416 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pb push_back #define rep(i, a, b) for (int i = a; i <= b; i++) const int N = 2e6; int ans[N]; vector<int> vec; void que(int idx) { cout << vec.size() + 1 << " "; for (auto x : vec) cout << x << " "; cout << idx << endl; cout.flush(); // <<< FLUSH HERE } int binary(int idx) { int l = 0, r = vec.size() - 1; int res = -1; while (l <= r) { int mid = (l + r) / 2; cout << mid - l + 2 << " "; // +1 for idx for (int i = l; i <= mid; i++) cout << vec[i] << " "; cout << idx << endl; cout.flush(); // <<< FLUSH HERE int raod; cin >> raod; if (raod == mid - l + 2) { // all different l = mid + 1; } else { // duplicate found res = mid; r = mid - 1; } } return ans[vec[res]]; } signed main() { int n; cin >> n; vec.pb(1); ans[1] = 1; rep(i, 2, n) { que(i); int raod; cin >> raod; if (raod == vec.size() + 1) { vec.pb(i); ans[i] = vec.size(); } else { ans[i] = binary(i); } } cout << 0 << " "; rep(i, 1, n) cout << ans[i] << " "; cout << endl; cout.flush(); 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...