Pagini recente » Cod sursa (job #1028742) | Cod sursa (job #2154562) | Cod sursa (job #60856) | Cod sursa (job #2088343) | Cod sursa (job #943315)
Cod sursa(job #943315)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int N, M, dad[100100];
int x, y, code;
inline int find(int node) {
int db = node;
while (node != dad[node]) node = dad[node];
int B0$$ = node; // :)
node = db;
while (node != dad[node]) {
int aux = dad[node];
dad[node] = B0$$;
node = aux;
}
return B0$$;
}
inline void join(int x, int y) {
dad[x] = y;
}
int main() {
fin >> N >> M;
for (int i = 1; i <= N; i++)
dad[i] = i;
for (int i = 1; i <= M; i++) {
fin >> code >> x >> y;
if (code == 1)
join(find(x), find(y));
else
if (find(x) == find(y))
fout << "DA\n";
else
fout << "NU\n";
}
}