Submission #1188282

#TimeUsernameProblemLanguageResultExecution timeMemory
1188282JungPSCarnival (CEOI14_carnival)C++20
20 / 100
25 ms424 KiB
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int parent[157];
int check[157][157];
vector<int> mp;
int findpar(int x){
    if(parent[x]==x) return x;
    return x=findpar(parent[x]);
}
signed main(){
    int n; cin >> n;
    for(int i=1;i<=n;++i) parent[i]=i;
    for(int i=1;i<=n;++i){
        for(int j=i+1;j<=n;++j){
            if(findpar(i)==findpar(j)) continue;
            if(check[findpar(i)][findpar(j)]) continue;
            cout << 2 << " " << i << " " << j << endl;
            fflush(stdout);
            int tmp; cin >> tmp;
            if(tmp==1){
                parent[findpar(i)]=findpar(j);
            }
            check[findpar(i)][findpar(j)]=check[findpar(j)][findpar(i)]=true;
        }
    }
    cout << 0 << " ";
    for(int i=1;i<=n;++i){
        if(find(mp.begin(),mp.end(),findpar(i))==mp.end()){
            mp.push_back(findpar(i));
        }
    }
    for(int i=1;i<=n;++i){
        cout << find(mp.begin(),mp.end(),findpar(i))-mp.begin()+1 << " ";
    }
}
#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...