Cod sursa(job #361913)
| Utilizator | Data | 7 noiembrie 2009 10:22:13 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include<stdio.h>
#define NM 100001
int main()
{
int n,m,s[NM],x,y,c,i,sx,sy;
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++) s[i]=i;
while(m--)
{
scanf("%d%d%d",&c,&x,&y);
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;
}
