Cod sursa(job #2377923)
Utilizator | Data | 11 martie 2019 14:17:51 | |
---|---|---|---|
Problema | Paduri de multimi disjuncte | Scor | 10 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <bits/stdc++.h>
using namespace std;
int p[100001], n, m;
int find(int x)
{
if (p[x] == x)
return x;
else
return p[x] = find(p[x]);
}
int main()
{
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
cin >> n >> m;
for (int i = 1; i <= n; i++)
p[i] = i;
for (int i = 1; i <= m; i++)
{
int c, x, y;
cin >> c >> x >> y;
if (c == 1)
p[y] = x;
else if(find(x) == find(y))
cout << "DA\n";
else
cout << "NU\n";
}
return 0;
}