Submission #97609

#TimeUsernameProblemLanguageResultExecution timeMemory
97609dalgerokCarnival (CEOI14_carnival)C++14
100 / 100
48 ms384 KiB
#include<bits/stdc++.h> using namespace std; int get(int l, int r){ cout << r - l + 1 << " "; for(int i = l; i <= r; i++){ cout << i << " "; } cout << endl; int x; cin >> x; return x; } int main(){ int n; cin >> n; int a[n + 5], sz = 0; memset(a, 0, sizeof(a)); for(int i = 1; i <= n; i++){ if(!a[i]){ a[i] = ++sz; } if(i == n){ break; } int l = i + 1, r = n; while(r - l > 1){ int mid = (r + l) >> 1; if(get(i + 1, mid) < get(i, mid)){ l = mid; } else{ r = mid; } } if(get(i + 1, l) == get(i, l)){ a[l] = a[i]; } else if(get(i + 1, r) == get(i, r)){ a[r] = a[i]; } } cout << "0 "; for(int i = 1; i <= n; i++){ cout << a[i] << " "; } cout << endl; }
#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...