Pagini recente » Cod sursa (job #2420108) | Cod sursa (job #2427311) | tema | Istoria paginii runda/ionutinneaparat | Cod sursa (job #2427334)
#include <iostream>
#include <fstream>
#define Nmax 100003
using namespace std;
///------FISIERE-------
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int tata[Nmax], grad[Nmax];
int findFather(int x)
{
if (tata[x] == x)
return x;
else
return findFather(tata[x]);
}
int main()
{
int n, m, fx, fy, x, y, cod;
in >> n >> m;
for (int i = 1; i <= m; i++)
{
tata[i] = i;
grad[i] = 1;
}
for (int i = 1; i <= m; i++)
{
in >> cod >> x >> y;
fx = findFather(x);
fy = findFather(y);
if (cod == 1)
{
if (grad[fx] < grad[fy])
{
tata[fx] = fy;
grad[fy] += grad[fx];
}
else
{
tata[fy] = fx;
grad[fx] += grad[fy];
}
}
else if(cod==2)
{
if(findFather(x)==findFather(y))
out << "DA" << endl;
else
out << "NU" << endl;
}
}
return 0;
}