Pagini recente » Cod sursa (job #1649449) | Cod sursa (job #1524269) | Cod sursa (job #1573857) | Cod sursa (job #2087768) | Cod sursa (job #1791938)
#include <stdio.h>
#define MAXN 100000
int sef[MAXN+1];
int find(int x){
if(sef[x]==x)
return x;
return sef[x]=find(sef[x]);
}
int main()
{
int n, m, i, x, y, c;
FILE *fi=fopen("disjoint.in", "r"), *fo=fopen("disjoint.out", "w");
fscanf(fi, "%d%d", &n, &m);
for(i=1;i<=n;i++)
sef[i]=i;
for(i=0;i<m;i++)
{
fscanf(fi, "%d%d%d", &c, &x, &y);
if(c==1)
sef[find(x)]=sef[find(y)];
else if(find(x)==find(y))
fprintf(fo, "DA\n");
else
fprintf(fo, "NU\n");
}
fclose(fi);
fclose(fo);
return 0;
}