Submission #475738

#TimeUsernameProblemLanguageResultExecution timeMemory
475738sobaCarnival (CEOI14_carnival)C++14
20 / 100
115 ms272 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; int par[151], siz[151]; int fnd(int node) { if(par[node]!=node) { return par[node]=fnd(par[node]); } return par[node]=node; } void uni(int a, int b) { a=fnd(a); b=fnd(b); if(a==b) return; if(siz[a]>siz[b]) { par[b]=a; siz[a]++; } else { par[a]=b; siz[b]++; } return ; } int main() { int n; cin >> n; int start=1 , nxt , q; for(int i =1 ; i<= n ;i++) { siz[i]=1; par[i]=i; } while(start!=-1) { nxt=-1; for(int i= start+1 ; i<= n ;i++) { cout << 2 << " " << start << " " << i << "\n"; cout.flush(); cin >> q; if(q==1) { uni(start, i); } else { if(nxt==-1) nxt=i; } } start=nxt; } int cnt=1; map<int,int>mp; for(int i =1 ; i<=n ; i++) { q=fnd(i); if(mp[q]==0)mp[q]=cnt++; } cout << 0 << " "; for(int i =1 ; i<=n ; i++) { q=fnd(i); cout <<mp[q] << " "; } cout <<"\n"; cout.flush(); }
#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...