Pagini recente » Rating Rosa Elen S. (rosaaa) | Cod sursa (job #1176591) | Cod sursa (job #2477076) | Cod sursa (job #1034993) | Cod sursa (job #2138814)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
#define maxn 100010
int p[maxn];
int rang[maxn]{0};
int gasesteMultime(int x)
{
if(x != p[x])
p[x] = gasesteMultime(p[x]);
return p[x];
}
void reuneste(int x, int y)
{
int px = gasesteMultime(x);
int py = gasesteMultime(y);
if(rang[px]> rang[py])
p[py] =px;
else
p[px] = py;
if(rang[px] = rang[py])
rang[py]++;
}
int main()
{
int n,m,op,x,y;
in >> n >> m;
for(int i = 1 ; i<= n ; i++)
p[i] = i;
for(int i = 0 ; i <m ; i++)
{
in >> op >> x >> y;
if(op == 1)
reuneste(x,y);
else
{
if(gasesteMultime(x) == gasesteMultime(y))
out<<"DA\n";
else
out<<"NU\n";
}
}
}