Submission #1231045

#TimeUsernameProblemLanguageResultExecution timeMemory
1231045sethodCarnival (CEOI14_carnival)C++20
0 / 100
3 ms620 KiB
#include <bits/stdc++.h> using namespace std; #define chinatsu ios_base::sync_with_stdio(false); #define kano cin.tie(nullptr); cout.tie(nullptr) #define int long long #define fi first #define se second #define pb push_back #define all(x) (x).begin(), (x).end() const int MOD = 1e9 + 7; const int INF = 1E18; int dp[155][155], ans[155]; void solve(){ auto q = [&](int l, int r){ if(dp[l][r] != -1) return dp[l][r]; cout << r - l + 1 << endl; for(int i = l; i <= r; i++) cout << i << " "; cout << endl; int x; cin >> x; dp[l][r] = x; return dp[l][r]; }; memset(dp, -1, sizeof(dp)); int n, rn; cin >> n; dp[1][1] = 1; ans[1] = 1; for(int i = 2; i <= n; i++){ int l = 1, r = i - 1, tmp = -1; while(l <= r){ int m = (l + r) / 2; if(q(m, i) == q(m, i - 1)){ tmp = m; l = m + 1; } else r = m - 1; } if(tmp == -1) ans[i] = rn++; else ans[i] = ans[tmp]; set<int> cnt; for(int j = i; j >= 1; j--){ cnt.insert(ans[j]); dp[j][i] = cnt.size(); } }; cout << 0 << " "; for(int i = 0; i <= n; i++){ cout << ans[i] << " "; } cout << endl; return; } signed main(){ chinatsu kano; int t = 1; //cin >> t; while(t--){ solve(); } 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...