Pagini recente » Cod sursa (job #249876) | Cod sursa (job #2125509) | Cod sursa (job #1910679) | Cod sursa (job #3125669) | Cod sursa (job #2378172)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
const int N=100009;
int n,m,x,y,c;
int t[N],r[N];
void unite(int x,int y)
{
if(r[x]<r[y])
t[x]=y;
else
t[y]=x;
if(r[x]==r[y])
r[y]++;
}
int Find(int x)
{
for(;x!=t[x];x=t[x]);
return x;
}
void query()
{
if(c==1)
unite(x,y);
else
fout<<(Find(x)==Find(y) ? "DA" : "NU" )<<'\n';
}
int main()
{
fin.sync_with_stdio(false);
fin>>n>>m;
for(int i=1;i<=n;i++)
t[i]=i,r[i]=1;
for(int i=1;i<=m;i++)
{
fin>>c>>x>>y;
query();
}
return 0;
}