Pagini recente » Cod sursa (job #3039242) | Cod sursa (job #1974086) | Cod sursa (job #301254) | Cod sursa (job #417759) | Cod sursa (job #1429669)
#include <fstream>
using namespace std;
ifstream fin ("disjoint.in");
ofstream fout("disjoint.out");
int n, m;
int v[1000001];
int find_root(int x){
int a = x;
while (x != v[x])
x = v[x];
while (a != v[a]){
int temp = v[a];
v[a] = x;
a = temp;
}
return x;
}
void check(int a, int b){
if (find_root(a) == find_root(b))
fout << "DA\n";
else fout << "NU\n";
}
int main()
{
fin >> n >> m;
for (int i = 1; i <= n; i++)
v[i] = i;
for (int op, a, b; m; m--){
fin >> op >> a >> b;
if (op == 1)
v[find_root(a)] = find_root(b);
else check(a, b);
}
return 0;
}