Cod sursa(job #2174583)
Utilizator | one shot RG1999 | Data | 16 martie 2018 12:39:00 |
---|---|---|---|
Problema | Paduri de multimi disjuncte | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.64 kb |
#include <bits/stdc++.h>
using namespace std;
int n,m,x,y,i,dad1,dad2,fth[100001],c;
int T(int x)
{
if(fth[x]!= x) fth[x]=T(fth[x]);
return fth[x];
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
fth[i]=i;
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&c,&x,&y);
dad1=T(x);
dad2=T(y);
if(c==1)
fth[dad1]=dad2;
else
{
if(dad1==dad2)
printf("DA\n");
else
printf("NU\n");
}
}
return 0;
}