Pagini recente » Cod sursa (job #1179691) | Cod sursa (job #874462) | Cod sursa (job #668260) | Cod sursa (job #3031012) | Cod sursa (job #2693765)
#include<fstream>
#define Nmax 100010
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n, m;
int reps[Nmax];
int findRep(int x) {
while (reps[x] != 0) {
x = reps[x];
}
return x;
}
void unite(int x, int y) {
int smaller = findRep(x);
int larger = findRep(y);
reps[larger] = smaller;
}
int main() {
fin >> n >> m;
for(int i = 0; i < m; i++) {
int op, x, y;
fin >> op >> x >> y;
switch(op) {
case 1:
unite(x, y);
break;
case 2:
if(findRep(x) == findRep(y)) {
fout << "DA";
} else {
fout << "NU";
}
fout << endl;
break;
}
}
}