Pagini recente » Cod sursa (job #3130983) | Cod sursa (job #2896508) | Cod sursa (job #956269) | Cod sursa (job #953260) | Cod sursa (job #2806016)
#include <fstream>
#define DIM 100005
using namespace std;
/// midifica numele fisierelor
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int n, m, t[DIM], nrNod[DIM];
void init () {
for (int i = 1; i <= n; i++)
t[i] = i, nrNod[i] = 1;;
}
int radacina(int x) {
if (x != t[x])
return t[x] = radacina(t[x]);
else
return x;
}
int main() {
cin >> n >> m;
init();
for (; m--; ) {
int cod, x, y;
cin >> cod >> x >> y;
int radx = radacina(x);
int rady = radacina(y);
if (cod == 1) {
if (nrNod[radx] > nrNod[rady]) {
nrNod[radx] += nrNod[rady];
t[rady] = radx;
}
else {
nrNod[rady] += nrNod[radx];
t[radx] = rady;
}
}
else {
if (radx == rady)
cout << "DA\n";
else
cout << "NU\n";
}
}
return 0;
}