Pagini recente » Cod sursa (job #100772) | Cod sursa (job #357166) | Cod sursa (job #992935) | Cod sursa (job #1598078) | Cod sursa (job #2812804)
#include <fstream>
using namespace std;
ifstream cin("disjoin.in");
ofstream cout("disjoin.out");
#define DIM 100002
int repr[DIM];
int cauta_reprez(int elem) {
if(elem == repr[elem]) {
return elem;
}
repr[elem] = cauta_reprez(repr[elem]);
return repr[elem];
}
void unire_triburi(int om1, int om2) {
int repr_om1 = cauta_reprez(om1);
int repr_om2 = cauta_reprez(om2);
if(repr_om1 != repr_om2)
repr[repr_om1] = repr_om2;
}
int main() {
int N, M;
cin >> N >> M;
for(int i = 1; i <= N; i++) repr[i] = i;
int tip, x, y;
while(M) {
--M;
cin >> tip >> x >> y;
if(tip == 1) {
unire_triburi(x, y);
}
else {
int rx = cauta_reprez(x);
int ry = cauta_reprez(y);
if(rx == ry) cout << "DA\n";
else cout << "NU\n";
}
}
return 0;
}