Cod sursa(job #2475021)
Utilizator | Greenio Greely greelio | Data | 16 octombrie 2019 07:33:43 |
---|---|---|---|
Problema | Paduri de multimi disjuncte | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.54 kb |
#include<bits/stdc++.h>
#define N 100030
using namespace std;
int n,m, p[N];
int find(int x) {
return (p[x]==x?x:p[x]=find(p[x]));
}
int main() {
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
cin>>n>>m;
for (int i=1; i<=n; i++) p[i]=i;
while (m--) {
int c,x,y;
cin>>c>>x>>y;
int a=find(x), b=find(y);
if (c==1) {
p[a]=b;
} else {
if (a==b) cout<<"DA\n";
else cout<<"NU\n";
};
}
return 0;
}