Cod sursa(job #361914)

Utilizator EugenStoicaEugen Stoica EugenStoica Data 7 noiembrie 2009 10:33:02
Problema Paduri de multimi disjuncte Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<stdio.h>
#include<stdlib.h>
#define NM 100001

int main()
{
int n,m,s[NM],x,y,c,i,sx,sy;
char sir[21],*p;
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d\n",&n,&m);
for(i=1;i<=n;i++) s[i]=i;
while(m--)
	{
	//scanf("%d%d%d",&c,&x,&y);
	fgets(sir,20,stdin);
	p=sir;
	c=atoi(p);
	p++;p++;
	x=atoi(p);
	while(*p!=' ')p++;
	p++;
	y=atoi(p);
	sx=s[x];
	sy=s[y];
	if(c==1)
		{
		if(sx>sy)
			{
			for(i=1;i<=n;i++)
				if(s[i]==sx) s[i]=sy;
			}
		else
			{
			for(i=1;i<=n;i++)
				if(s[i]==sy) s[i]=sx;
			}
		}
	else
		{
		if(sx==sy)printf("DA\n");
		else printf("NU\n");
		}
	}
return 0;
}