Pagini recente » Cod sursa (job #1592907) | Cod sursa (job #1118503) | Cod sursa (job #1322567) | Cod sursa (job #2265932) | Cod sursa (job #1243646)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int t[100001];
int rad(int x)
{
if(t[x]==0)
return x;
t[x]=rad(t[x]);
return t[x];
}
void unite(int x,int y)
{
int rx=rad(x),ry=rad(y);
t[rx]=ry;
}
int findv(int x,int y)
{
if(rad(x)==rad(y))
return 1;
else
return 0;
}
int main()
{
int n,m,i,a,b,x,val;
in>>n>>m;
while(m--)
{
in>>x>>a>>b;
if(x==1)
unite(a,b);
else
{
val=findv(a,b);
if(val==0)
out<<"NU"<<"\n";
else
out<<"DA"<<"\n";
}
}
return 0;
}