Pagini recente » Cod sursa (job #391673) | Cod sursa (job #1020777) | Cod sursa (job #540104) | Cod sursa (job #309649) | Cod sursa (job #434391)
Cod sursa(job #434391)
#include<fstream>
#include<cstdio>
using namespace std;
int t[100001];
int rang[100001];
void reuniune(int x,int y)
{
if(rang[x]>rang[y])
t[y]=x;
else t[x]=y;
if(rang[x]==rang[y]) rang[y]++;
}
int rad(int x)
{
int r=x;
while(t[r]) r=t[r];
while(t[x])
{
int aux=t[x];
t[x]=r;
x=aux;
}
return r;
}
int main()
{
int n,m,cod,x,y;
ifstream fin("disjoint.in");
freopen("disjoint.out","w",stdout);
fin>>n>>m;
//for(int i=1; i<=n; ++i)
// rang[i]=1;
for(int i=1; i<=m; ++i)
{
fin>>cod>>x>>y;
if(cod==1) reuniune(x,y);
else if(rad(x)==rad(y)) printf("DA\n");
else printf("NU\n");
}
return 0;
}