Pagini recente » Cod sursa (job #64881) | Cod sursa (job #2530272) | Cod sursa (job #16011) | Cod sursa (job #1107293) | Cod sursa (job #2075141)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n,m,i,c,x,y;
int a[100001];
int multime(int x)
{
if(a[x]<0)return x;
a[x]=multime(a[x]);
return a[x];
}
void uneste(int x,int y)
{
int q=multime(x);
int w=multime(y);
int h1=-a[q];
int h2=-a[w];
if(h1>=h2)
{
a[w]=q;
a[q]-=(h1==h2);
}
else
{
a[q]=w;
}
}
int main()
{
fin>>n>>m;
for(i=1;i<=n;i++)
{
a[i]=-1;
}
for(i=1;i<=m;i++)
{
fin>>c>>x>>y;
if(c==1)
{
uneste(x,y);
}
else
{
if(multime(x)==multime(y))
fout<<"DA"<<'\n';
else fout<<"NU"<<'\n';
}
}
return 0;
}