Pagini recente » Cod sursa (job #958206) | Cod sursa (job #2396946) | Cod sursa (job #463175) | Cod sursa (job #3214843) | Cod sursa (job #2932247)
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
long long n, m, R[400005], op, nod1, nod2;
long long reprez(long long x)
{
if(R[x] == x)
return x;
R[x] = reprez(R[x]);
return R[x];
}
void reuniune(long long x, long long y)
{
R[reprez(x)] = reprez(y);
}
int main()
{
in>>n>>m;
for(long long i = 1; i <= n; i++)
R[i] = i;
for(long long i = 1; i <= m; i++)
{
in>>op>>nod1>>nod2;
if(op == 1)
{
if(reprez(nod1) != reprez(nod2))
reuniune(nod1, nod2);
}
else
{
if(reprez(nod1) != reprez(nod2))
out<<"NU\n";
else
out<<"DA\n";
}
}
return 0;
}