Pagini recente » Cod sursa (job #340540) | Cod sursa (job #2592115) | Cod sursa (job #218765) | Cod sursa (job #3265949) | Cod sursa (job #2953960)
#include <bits/stdc++.h>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int n, m;
vector <int> tata;
vector <int> inaltime;
int radacina(int nod) {
if(tata[nod] == 0)
return nod;
tata[nod] = radacina(tata[nod]);
return tata[nod];
}
void unire(int x, int y) {
if(radacina(x)!= radacina(y))
tata[radacina(x)] = radacina(y);
}
int main()
{
f >> n >> m;
tata.resize(n + 1, 0);
inaltime.resize(n + 1, 0);
for (int i = 1; i <= m; i++) {
int cod, x, y;
f >> cod >> x >> y;
switch(cod){
case 1:
unire(x,y);
break;
case 2:
if (radacina(x) == radacina(y))
g << "DA\n";
else
g << "NU\n";
break;
}
}
f.close();
g.close();
return 0;
}