Pagini recente » Cod sursa (job #1089856) | Cod sursa (job #454646) | Cod sursa (job #2757737) | Cod sursa (job #2092042) | Cod sursa (job #1955046)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int ROOT[100005],n,m;
int getRoot(int x){
if(x==ROOT[x])
return x;
ROOT[x]=getRoot(ROOT[x]);
return ROOT[x];
}
void uni(int x, int y){
x=getRoot(x);
y=getRoot(y);
if(x!=y)
ROOT[x]=y;
}
void read(){
in>>n>>m;
for(int i=1;i<=n;i++)
ROOT[i]=i;
}
void queries(){
int op,x,y;
for(int i=1;i<=m;i++){
in>>op>>x>>y;
if(op==1)
uni(x,y);
else{
out<<((getRoot(x)==getRoot(y)) ? "DA\n" : "NU\n");
}
}
}
int main(){
read();
queries();
return 0;
}