Pagini recente » Cod sursa (job #1619203) | Cod sursa (job #2579104) | Cod sursa (job #2800859) | Cod sursa (job #940934) | Cod sursa (job #2837419)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int n,q;
int t[100001];
int h[100001];
int main()
{
in >> n >> q;
for(int i=1;i<=n;i++){
t[i] = i;
h[i] = i;
}
for(int i=1;i<=q;i++){
int p,x,y;
in >> p >> x >> y;
int r1=x,r2=y;
while(r1 != t[r1])
r1 = t[r1];
while(r2 != t[r2])
r2 = t[r2];
if(p == 1){
if(h[r1] > h[r2]){
t[r2] = r1;
} else {
t[r1] = r2;
if(h[r1] == h[r2])
h[r2] ++;
}
} else {
if(r1 == r2){
out << "DA\n";
} else {
out << "NU\n";
}
while(x!=r1){
int temp = t[x];
t[x] = r1;
x = temp;
}
while(y!=r2){
int temp = t[y];
t[y] = r2;
y = temp;
}
}
}
return 0;
}