Submission #1140927

#TimeUsernameProblemLanguageResultExecution timeMemory
1140927vladiliusCarnival (CEOI14_carnival)C++20
100 / 100
5 ms452 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; #define pb push_back #define ff first #define ss second int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); auto ask = [&](vector<int> x){ cout<<x.size()<<"\n"; for (int i: x){ cout<<i<<" "; } cout<<"\n"; cout.flush(); int f; cin>>f; return f; }; auto get = [&](int l, int r){ vector<int> x; for (int i = l; i <= r; i++){ x.pb(i); } return ask(x); }; int n; cin>>n; vector<int> a(n + 1); auto f = [&](int l, int r){ set<int> st; for (int i = l; i <= r; i++){ st.insert(a[i]); } return (int) st.size(); }; int cc = 0; for (int i = 1; i <= n; i++){ if (i == 1|| get(1, i) != f(1, i - 1)){ a[i] = ++cc; continue; } int l = 1, r = i - 1; while (l + 1 < r){ int m = (l + r) / 2; if (get(m, i) == f(m, i - 1)){ l = m; } else { r = m - 1; } } if (get(r, i) == f(r, i - 1)) l = r; a[i] = a[l]; } for (int i = 0; i <= n; i++){ cout<<a[i]<<" "; } cout<<"\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...