Pagini recente » Cod sursa (job #1637900) | Cod sursa (job #837261) | Cod sursa (job #1826645) | Cod sursa (job #2155914) | Cod sursa (job #2027005)
#include <cstdio>
using namespace std;
int t[100001];
int rad (int x){
while (t[x]>0)
x=t[x];
return x;
}
int main()
{
FILE *fin=fopen ("disjoint.in","r");
FILE *fout=fopen ("disjoint.out","w");
int n,m,i,rx,ry,op,x,y;
fscanf (fin,"%d%d",&n,&m);
for (i=1;i<=n;i++)
t[i]=-1;
for (i=1;i<=m;i++){
fscanf (fin,"%d%d%d",&op,&x,&y);
rx=rad(x);
ry=rad(y);
if (op==2){
if (rx==ry)
fprintf (fout,"DA\n");
else fprintf (fout,"NU\n");
}
else if (rx!=ry){
if (t[rx]<t[ry]){
t[rx]+=t[ry];
t[ry]=rx;
}
else {
t[ry]+=t[rx];
t[rx]=ry;
}
}
}
return 0;
}