Pagini recente » Cod sursa (job #2911388) | Cod sursa (job #1549777) | Cod sursa (job #2750638) | Cod sursa (job #1566711) | Cod sursa (job #3267154)
#include <fstream>
#define FAST ios_base::sync_with_stdio(false);
using namespace std;
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
const int N=1e5+2;
int n,m,t,x,y,i;
int parent[N],h[N];
int findd(int x)
{
if(parent[x]==x) return x;
return parent[x]=findd(parent[x]);
}
void unionn(int x,int y)
{
x=findd(x);
y=findd(y);
if(h[x]<h[y])
parent[x]=y;
else if(h[x]>h[y])
parent[y]=x;
else
parent[x]=y, h[y]++;
}
int main()
{
FAST
cin>>n>>m;
for(i=1; i<=n; i++)
parent[i]=i, h[i]=0;
while(m--)
{
cin>>t>>x>>y;
switch(t)
{
case 1: unionn(x,y); break;
case 2: if(findd(x)==findd(y))
cout<<"DA\n";
else
cout<<"NU\n";
break;
}
}
return 0;
}