Pagini recente » Cod sursa (job #1397245) | Cod sursa (job #2555224) | Cod sursa (job #1621193) | Cod sursa (job #174268) | Cod sursa (job #2696235)
#include <iostream>
#include <fstream>
#define MAXNM 100001
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int dad[MAXNM];
int grandDad(int a){
int b=a, t;
while(b != dad[b])
b=dad[b];
while(a!=b){
t=dad[a];
dad[a]=b;
a=t;
}
return a;
}
void comb(int a,int b){
a=grandDad(a);
b=grandDad(b);
dad[b]=a;
}
int main(){
int n,m;
fin>>n>>m;
for(int i=1;i<=n;i++){
dad[i]=i;
}
for(int i=1;i<=m;i++){
int c,x,y;
fin>>c>>x>>y;
if(c==1){
if(grandDad(x)!=grandDad(y))
comb(x,y);
}
else{
if(grandDad(x)==grandDad(y))
fout<<"DA\n";
else
fout<<"NU\n";
}
}
return 0;
}