Pagini recente » Cod sursa (job #2875092) | Cod sursa (job #2286049) | Cod sursa (job #1607555) | Cod sursa (job #2029749) | Cod sursa (job #2941846)
#include <bits/stdc++.h>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int n,m,cod,x,y;
int t[100005], sz[100005];
int tata(int nod)
{
if(t[nod]==nod)
return nod;
t[nod]=tata(t[nod]);
return t[nod];
}
void join(int x, int y)
{
x=tata(x);
y=tata(y);
if(sz[x]>sz[y]) swap(x, y);
t[x]=y;
sz[y]+=sz[x];
}
int main()
{
in>>n>>m;
for(int i=1;i<=n;i++)
t[i]=i, sz[i]=1;
for(int i=0;i<m;i++)
{
in>>cod>>x>>y;
if(cod==1)
join(x,y);
else
{
if(tata(x)==tata(y))
out<<"DA\n";
else
out<<"NU\n";
}
}
}