Pagini recente » Cod sursa (job #2612998) | Cod sursa (job #552172) | Cod sursa (job #1147303) | Cod sursa (job #899881) | Cod sursa (job #1790223)
#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;
}