Pagini recente » Cod sursa (job #1013749) | Cod sursa (job #1444952) | Cod sursa (job #2069107) | Cod sursa (job #837845) | Cod sursa (job #2137006)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n,m,p,t[100001],h[100001];
int rad(int x)
{
if(t[x]==0)return x;
t[x]=rad(t[x]);
return t[x];
}
void uniune(int x, int y)
{
int rx=rad(x);
int ry=rad(y);
if(h[rx]<h[ry])t[rx]=ry;
else{
t[ry]=rx;
if(h[ry]==h[rx])++h[ry];
}
}
int main()
{
int x1,y1;
fin>>n>>m;
for(int i=1;i<=m;i++)
{
fin>>p>>x1>>y1;
if(p==1)uniune(x1,y1);
else{
if(rad(x1)!=rad(y1))fout<<"NU"<<'\n';
else fout<<"DA"<<'\n';
}
}
return 0;
}