Pagini recente » Cod sursa (job #851433) | Cod sursa (job #154462) | Cod sursa (job #2068326) | Cod sursa (job #419418) | Cod sursa (job #2837350)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("disjoint.in");
ofstream fout ("disjoint.out");
int n,i,j,tip,tata[100005],h[100005],m,x,y;
int rad(int nod)
{
if(tata[nod]==nod) return nod;
else return rad(tata[nod]);
}
int main()
{
fin>>n>>m;
for(i=1;i<=n;i++)
{
h[i]=1;
tata[i]=i;
}
for(i=1;i<=m;i++)
{
fin>>tip>>x>>y;
if(tip==1)
{
int rad1=rad(x);
int rad2=rad(y);
if(h[rad1]>h[rad2])
{
tata[rad(x)]=rad(y);
}
else tata[rad(y)]=rad(x);
if(h[rad1]==h[rad2]) h[rad2]++;
}
else
if(tip==2)
{
if(rad(x)==rad(y)) fout<<"DA"<<'\n';
else fout<<"NU"<<'\n';
}
}
return 0;
}