Cod sursa(job #2404645)
| Utilizator | Data | 13 aprilie 2019 11:06:36 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include <bits/stdc++.h>
using namespace std;
#define N 100010
int n, m, x, y, o, p[N];
int fnd(int q){
if (q == p[q]) return q;
p[q] = fnd(p[q]);
return p[q];
}
int main(){
ifstream cin ("disjoint.in");
ofstream cout ("disjoint.out");
cin >> n >> m;
for (int i=0; i<n; i++) p[i] = i;
for (int i=0; i<m; i++){
cin >> o >> x >> y;
if (o == 1) p[fnd(x)] = fnd(y);
else cout << (fnd(x) == fnd(y) ? "DA" : "NU") << '\n';
}
return 0;
}
