Pagini recente » Cod sursa (job #1264645) | Cod sursa (job #1315979) | Cod sursa (job #1883040) | Cod sursa (job #1728068) | Cod sursa (job #1613076)
#include <stdio.h>
#include <stdlib.h>
unsigned long t[100000];
unsigned long Search(unsigned long x){
while(t[x]!=x)
x=t[x];
return x;
}
void Add(unsigned long x,unsigned long y){
t[y]=x;
}
int main(){
unsigned long n,m;
FILE*f=fopen("disjoint.in","r");
fscanf(f,"%lu %lu",&n,&m);
for(unsigned long i=0;i<n;i++)
t[i]=i;
FILE*g=fopen("disjoint.out","w");
while(m--){
short op;
unsigned long x,y;
fscanf(f,"%hd %lu %lu",&op,&x,&y);
if(op==1)
Add(Search(x-1),Search(y-1));
else if(Search(x-1)==Search(y-1))
fprintf(g,"DA\n");
else
fprintf(g,"NU\n");
}
fclose(f);
fclose(g);
return 0;
}