Submission #1346854

#TimeUsernameProblemLanguageResultExecution timeMemory
1346854Zone_zonee사육제 (CEOI14_carnival)C++20
100 / 100
2 ms436 KiB
#include <bits/stdc++.h>
using namespace std;

int color[152];
vector<int> known;
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int n;
    cin >> n;
    memset(color, 0xff, sizeof color);
    color[1] = 1;
    known.push_back(1);
    int cnt = 1;
    for(int i = 2; i <= n; ++i){ // N-1 Queries
        cout << i << ' ';
        for(int j = 1; j <= i; ++j) cout << j << ' ';
        cout << '\n';
        cout.flush();
        int res; cin >> res;
        if(res > cnt) color[i] = ++cnt, known.push_back(i);
    }
    for(int i = 1; i <= n; ++i){ // (N-C) * (log2 C) Queries
        if(color[i] != -1) continue;
        int l = 0, r = int(known.size())-1;
        while(l < r){
            int mid = (l+r)>>1;
            cout << mid+2 << ' ';
            cout << i << ' ';
            for(int j = 0; j <= mid; ++j) cout << known[j] << ' ';
            cout << '\n';
            cout.flush();
            int res; cin >> res;
            if(res == mid+1) r = mid;
            else l = mid+1;
        }
        color[i] = color[known[l]];
    }
    cout << 0 << ' ';
    for(int i = 1; i <= n; ++i) cout << color[i] << ' ';
    cout << '\n';
    cout.flush();
}
// 1 2 1 3 2
#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...