Pagini recente » Cod sursa (job #1367925) | Cod sursa (job #1367924) | Diferente pentru problema/aliniere intre reviziile 3 si 2 | Cod sursa (job #1367944) | Cod sursa (job #2050684)
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int v[100001];
int dady(int x){
if(v[x]==x)
return x;
else{
v[x]=dady(v[x]);
return v[x];
}
}
inline void join(int x, int y){
int tati1, tati2;
tati1=dady(x);
tati2=dady(y);
v[tati2]=tati1;
}
int main()
{
FILE *fin, *fout;
int n,m,x,y,op;
fin=fopen("disjoint.in","r");
fout=fopen("disjoint.out","w");
fscanf(fin,"%d%d",&n,&m);
for(int i=1;i<=n;i++)
v[i]=i;
for(m;m>0;m--){
fscanf(fin,"%d%d%d",&op,&x,&y);
if(op==1){
join(x,y);
}else{
if(dady(x)==dady(y))
fprintf(fout,"DA\n");
else
fprintf(fout,"NU\n");
}
}
fclose(fin);
fclose(fout);
return 0;
}