Submission #1067522

#TimeUsernameProblemLanguageResultExecution timeMemory
1067522jsannemoCarnival (CEOI14_carnival)C++14
0 / 100
10 ms344 KiB
#include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for(int i = a; i < (b); ++i) #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() typedef long long ll; typedef pair<int, int> pii; typedef vector<int> vi; int query(vi q) { if (sz(q) == 1) return 1; cout << q.size(); for (int i : q) cout << " " << i + 1; cout << endl; return 1; int res; cin >> res; return res; } void sol(int N) { vi col(N); col[0] = 1; vi distinct; distinct.push_back(0); rep(i,1,N) { set<int> cand(all(distinct)); int bits = i ? (32 - __builtin_clz(i)) : 0; rep(b,0,bits+1) { vi q; rep(j,0,i) { if ((~j) & (1 << b)) q.push_back(j); } set<int> inq(all(q)); set<int> expected; for (int w : q) expected.insert(col[w]); q.push_back(i); int res = query(q); if (res > sz(expected)) { rep(j,0,i) if (inq.count(j)) cand.erase(j); } else { rep(j,0,i) if (!inq.count(j)) cand.erase(j); } } if (cand.empty()) { distinct.push_back(i); col[i] = sz(distinct); } else { assert(sz(cand) == 1); col[i] = col[*cand.begin()]; } } cout << 0; rep(i,0,N) cout << " " << col[i]; cout << endl; } int main() { cin.tie(0)->sync_with_stdio(0); cin.exceptions(cin.failbit); int N; cin >> N; sol(N); }
#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...