Pagini recente » Cod sursa (job #1114394) | Cod sursa (job #880732) | Cod sursa (job #775442) | Cod sursa (job #692690) | Cod sursa (job #427616)
Cod sursa(job #427616)
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
void open(){
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
}
#define MAXN 100010
int n,m,type,a,b,par[MAXN],rank[MAXN];
int find(int a){
if (a!=par[a]) par[a]=find(par[a]);
return par[a];
}
int main(){
open();
scanf("%d%d",&n,&m);
for (int i=1;i<=n;i++){
par[i]=i;
rank[i]=1;
}
for (int i=0;i<m;i++){
scanf("%d%d%d",&type,&a,&b);
a=find(a);b=find(b);
if (type==1){
if (a==b) continue;
if (rank[a]<rank[b]){
par[a]=b;
}
else par[b]=a;
}
else {
if (a==b) printf("DA\n");
else printf("NU\n");
}
}
//system("pause");
return 0;
}