Pagini recente » Cod sursa (job #3214737) | Cod sursa (job #1177712) | Cod sursa (job #1030355) | Cod sursa (job #2737966) | Cod sursa (job #2567588)
#include <bits/stdc++.h>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int tata[100100],h[100100];
int afla_tata(int nod)
{
while(nod!=tata[nod])nod=tata[nod];
return nod;
}
void uneste(int nod1,int nod2)
{
int r1=afla_tata(nod1);
int r2=afla_tata(nod2);
if(h[r1]<h[r2])tata[r1]=r2;
else if(h[r2]<h[r1])tata[r2]=r1;
else tata[r1]=r2,h[r2]++;
}
int n,m,i,x,y,op;
int main()
{
f>>n>>m;
for(i=1;i<=n;i++)h[i]=1,tata[i]=i;
for(i=1;i<=m;i++)
{
f>>op>>x>>y;
if(op==1)uneste(x,y);
else
{
if(afla_tata(x)==afla_tata(y))g<<"DA"<<'\n';
else g<<"NU"<<'\n';
}
}
return 0;
}