Cod sursa(job #468065)

Utilizator dushmiMihai-Alexandru Dusmanu dushmi Data 2 iulie 2010 09:28:15
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<cstdio>
#define N 1<<17
#define in "disjoint.in"
#define out "disjoint.out"
int t[N];
int compact(int nod)
{
	if(t[nod]==0) return nod;
	return t[nod]=compact(t[nod]);
}
void solve()
{
	int n,m,r,x,y,rx,ry;
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;i++)
	{
		scanf("%d%d%d",&r,&x,&y);
		rx=compact(x);
		ry=compact(y);
		if(r==1)
		{
			t[ry]=rx;
			continue;
		}
		if(rx==ry)
			printf("DA\n");
		else printf("NU\n");
	}
}
int main()
{
	freopen(in,"r",stdin);
	freopen(out,"w",stdout);
	solve();
	return 0;
}