Pagini recente » Cod sursa (job #1496166) | Cod sursa (job #1745942) | Cod sursa (job #346953) | Cod sursa (job #593179) | Cod sursa (job #2280076)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("disjoint.in");
ofstream fout ("disjoint.out");
const int NMAX=1e5+5;
int v[NMAX],n,m,x,y,cod,cx,cy;
void citire()
{
fin>>n>>m;
}
int radacina(int nod)
{
while(v[nod]!=nod)
nod=v[nod];
return nod;
}
int dfs (int nod)
{
if(v[nod]!=nod)
v[nod]=dfs(v[nod]);
return v[nod];
}
void rezolvare()
{
for(int i=1; i<=n; i++)
v[i]=i;
while(m--)
{
fin>>cod>>x>>y;
if(cod==1)
{
cx=radacina(x);
cy=radacina(y);
v[cx]=cy;
}
else
{
cx=radacina(x);
cy=radacina(y);
if(cx==cy) fout<<"DA"<<'\n';
else fout<<"NU"<<'\n';
dfs(x);
dfs(y);
}
}
}
int main()
{
citire();
rezolvare();
return 0;
}