Submission #1231009

#TimeUsernameProblemLanguageResultExecution timeMemory
1231009djsksbrbfCarnival (CEOI14_carnival)C++20
100 / 100
6 ms408 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair <int, int> pii; #define fi first #define se second #define pb push_back const int MOD = 1e9 + 7; const int MAX = 200 + 5; int col[MAX]; int n; int ask(int l, int r){ cout << r - l + 1 << endl; for(int i = l ; i <= r ; i++)cout << i << ' '; cout << endl; int cnt; cin >> cnt; return cnt; } int f(int l, int r){ bool used[n + 1];memset(used, 0, sizeof(used)); int cnt = 0; // in this seg for(int i = l ; i <= r ; i++){ if(used[col[i]])continue; cnt++; used[col[i]] = 1; } return cnt; } signed main(){ cin >> n; col[1] = 1; int cnt = 2; for(int i = 2 ; i <= n ; i++){ int l = 1, r = i - 1; int ans =-1; while(l <= r){ int mid = (l + r) >> 1; int tmp = ask(mid, i ); if(tmp == f(mid, i - 1)){ ans = mid; l = mid + 1; } else r = mid - 1; } if(ans ==-1)col[i] = cnt++; else col[i] = col[ans]; } cout << 0 << ' '; for(int i = 1 ; i <= n ; i++)cout << col[i] << ' '; cout << endl; 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...