Submission #480435

#TimeUsernameProblemLanguageResultExecution timeMemory
480435ponytailCarnival (CEOI14_carnival)C++17
100 / 100
29 ms272 KiB
#include<bits/stdc++.h>
using namespace std;
int query(int L, int R) {
    cout << R-L+1;
    for(int i=L; i<=R; i++) cout << " " << i;
    cout << "\n";
    fflush(stdout);
    int res;cin >> res;return res;
}
int main() {
    int N; cin >> N;
    int ans[N+1];
    ans[1] = 1;
    int now = 2;
    for(int i=2; i<=N; i++) {
        if(query(1, i) != query(1, i-1)) {
            ans[i] = now++;
        }
        else {
            int lb = 1, rb = i-1;
            while(lb < rb) {
                int mid = (lb+rb+1) / 2;
                if(query(mid, i-1) != query(mid, i)) {
                    rb = mid-1;
                }
                else {
                    lb = mid;
                }
            }
            ans[i] = ans[lb];
        }
    } 
    cout<<0;
    for(int i=1; i<=N; i++)cout << " " << ans[i];
    cout << "\n";
}//R...i
#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...