Pagini recente » Cod sursa (job #1381402) | Cod sursa (job #643621) | Cod sursa (job #2092415) | Cod sursa (job #1923284) | Cod sursa (job #1827390)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n, m, v[100001], h[100001];
//v[i] = radacina multimii in care se afla nodul i
//h[i] = inaltimea arborelui cu radacina in nodul i
int main()
{
int i, x, y, c;
fin>>n>>m;
for(i = 1; i <= n; ++i){
v[i] = i;
h[i] = 1;
}
for(i = 1; i <= m; ++i){
fin>>c>>x>>y;
if(c == 1){
if(h[x] > h[y]){
v[y] = v[x];
h[x] += h[y];
}
else{
v[x] = v[y];
h[y] += h[x];
}
}
else{
if(v[x] == v[y]){
fout<<"DA\n";
}
else {
fout<<"NU\n";
}
}
}
return 0;
}