Submission #317962

#TimeUsernameProblemLanguageResultExecution timeMemory
317962nandonathanielCarnival (CEOI14_carnival)C++14
20 / 100
246 ms384 KiB
#include<bits/stdc++.h>
using namespace std;

int par[155],ans[155];
vector<int> kel[155];

int find(int x){
	if(par[x]==x)return x;
	return par[x]=find(par[x]);
}

void join(int x,int y){
	par[find(x)]=find(y);
}

int main(){
	int n,x;
	cin >> n;
	for(int i=1;i<=n;i++)par[i]=i;
	for(int i=1;i<=n;i++){
		for(int j=i+1;j<=n;j++){
			cout << 2 << " " << i << " " << j << endl;
			cin >> x;
			if(x==1)join(i,j);
		}
	}
	for(int i=1;i<=n;i++)kel[find(i)].push_back(i);
	int no=0;
	for(int i=1;i<=n;i++){
		if(kel[i].empty())continue;
		no++;
		for(auto isi : kel[i])ans[isi]=no;
	}
	cout << 0;
	for(int i=1;i<=n;i++)cout << " " << ans[i];
	cout << endl;
	return 0;
}
#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...