제출 #97609

#제출 시각아이디문제언어결과실행 시간메모리
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...