Pagini recente » Cod sursa (job #1615870) | Cod sursa (job #1971742) | Cod sursa (job #1392037) | Cod sursa (job #890759) | Cod sursa (job #1451573)
#include <iostream>
#include<fstream>
using namespace std;
int N;
int Q;
int p[100001];
int sz[100001],op,x,y;
int fin(int a)
{
while(a!=p[a])
a=p[a];
p[a]=a;
return a;
}
bool sameset(int a,int b)
{
int k=fin(a);
int j=fin(b);
if(k==j)
return true;
return false;
}
void uni(int a,int b)
{
int k=fin(a);
int j=fin(b);
p[k]=j;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
cin>>N>>Q;
for(int i=1;i<=N;i++)
p[i]=i,sz[i]=1;
while(Q--)
{
cin>>op;
cin>>x>>y;
if(op==1)
{
if(!sameset(x,y))
uni(x,y);
}
if(op==2)
{
if(sameset(x,y))
cout<<"DA \n";
else cout<<"NU \n";
}
}
return 0;
}