Cod sursa(job #2402459)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 10 aprilie 2019 18:36:16
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.5 kb
#include <cstdio>
using namespace std;
 
int v[100005];
 
int tatal(int x)
{
	int y=x;
	while(v[y]!=0)
	{
		y=v[y];
	}
	while(v[x]!=0)
	{
		int t=v[x];
		v[x]=y;
		x=t;
	}
	return x;
}
 
 
 
int main()
{	
	int n,m,x,y,t;
	freopen("disjoint.in","r", stdin);
	freopen("disjoint.out","w", stdout);
	scanf("%d %d",&n,&m);
	for(int i=1;i<=m;i++)
	{
		scanf("%d %d %d",&t,&x,&y);
		if(t==1)
			v[tatal(x)]=y;
		if(t==2)
			if(tatal(x)==tatal(y))
				printf("DA\n");
			else printf("NU\n");
			
	}
 
	
	return 0;
}