Pagini recente » Cod sursa (job #675436) | Istoria paginii runda/simulare__3/clasament | Statistici Fagarsan Ioan (MurphyConnor) | Cod sursa (job #2071325) | Cod sursa (job #2284262)
#include <bits/stdc++.h>
#define Nmax 100005
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n,m,x,y,arb[Nmax];
struct operatie{
int tip;
int x;
int y;
}op[Nmax];
int rad(int x)
{
if(arb[x]==x)
return x;
else
return arb[x]=rad(arb[x]);
}
void uneste(int x,int y)
{
arb[rad(x)]=rad(y);
}
int main()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
arb[i]=i;
for(int i=1;i<=m;i++)
fin>>op[i].tip>>op[i].x>>op[i].y;
for(int i=1;i<=m;i++)
{
if(op[i].tip==1)
uneste(op[i].x,op[i].y);
else
if(op[i].tip==2)
{
if(rad(op[i].x)==rad(op[i].y))
fout<<"DA\n";
else fout<<"NU\n";
}
}
return 0;
}