Pagini recente » Cod sursa (job #2837816) | Cod sursa (job #505437) | Cod sursa (job #3005191) | Cod sursa (job #2879706) | Cod sursa (job #3249765)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int vtati[100001], n, m, x, y, op;
int main()
{
fin>>n>>m;
for (int i=1; i<=n; i++)
vtati[i] = i;
for (int i=1; i<=m; i++){
fin>>op>>x>>y;
if (op == 1){
int xi=x, aux;
while (vtati[xi] != xi){
xi = vtati[xi];
}
while (vtati[x] != x){
aux = vtati[x];
vtati[x] = xi;
x = aux;
}
int yi=y;
while (vtati[yi] != yi){
yi = vtati[yi];
}
while (vtati[y] != y){
aux = vtati[y];
vtati[y] = yi;
y = aux;
}
vtati[x] = y;
} else {
int xi=x;
while (vtati[xi] != xi){
xi = vtati[xi];
}
int aux;
while (vtati[x] != x){
aux = vtati[x];
vtati[x] = xi;
x = aux;
}
int yi=y;
while (vtati[yi] != yi){
yi = vtati[yi];
}
while (vtati[y] != y){
aux = vtati[y];
vtati[y] = yi;
y = aux;
}
if (x==y){
fout<<"DA"<<"\n";
} else
fout<<"NU"<<"\n";
}
}
return 0;
}