Pagini recente » Istoria paginii runda/o__o | Cod sursa (job #1095715) | Cod sursa (job #1060187) | Cod sursa (job #168242) | Cod sursa (job #2768166)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
#define DIM 100001
int t[DIM], n, m, x, y, tip;
static inline int radacina(int x) {
if(t[x] == x)
return x;
int y = radacina(t[x]); ///aflu tatal tatalui;
t[x] = y;
return y;
}
static inline void Union(int x, int y) {
int tx = radacina(x);
int ty = radacina(y);
t[ty] = t[tx];
}
int main() {
cin >> n >> m;
for(int i = 1; i <= n; i++)
t[i] = i; ///fiecare e initial tatal sau;
for(int i = 1; i <= m; i++) {
cin >> tip >> x >> y;
if(tip == 1)
Union(x, y);
else {
int tx = radacina(x);
int ty = radacina(y);
cout << (tx == ty ? "DA" : "NU") << '\n'; ///daca au aceeasi radacina;
}
}
return 0;
}