Pagini recente » Cod sursa (job #2293749) | Cod sursa (job #2631372) | Cod sursa (job #122986) | Cod sursa (job #1092692) | Cod sursa (job #2280056)
#include <fstream>
#define NMAX 100000
using namespace std;
ifstream fi("disjoint.in");
ofstream fo("disjoint.out");
int n, m, cod, x, y, r1, r2;
int P[NMAX+5];
int radacina(int nod)
{
while(P[nod]!=nod)
nod=P[nod];
return nod;
}
int dfs(int nod)
{
if(P[nod]!=nod)
P[nod]=dfs(P[nod]);
return P[nod];
}
int main()
{
fi>>n>>m;
for(int i=1; i<=n; i++)
P[i]=i;
while(m--)
{
fi>>cod>>x>>y;
if(cod==1)
{
r1=radacina(x);
r2=radacina(y);
P[r1]=r2;
}
else
{
r1=dfs(x);
r2=dfs(y);
if(r1==r2)
fo<<"DA\n";
else
fo<<"NU\n";
}
}
fi.close();
fo.close();
return 0;
}