Pagini recente » Cod sursa (job #2930674) | Cod sursa (job #576904) | Cod sursa (job #289338) | Cod sursa (job #3171970) | Cod sursa (job #2945208)
#include <fstream>
#include <vector>
#include <string>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
vector<int> multimi;
int radacina(int x) {
while (multimi[x] != x)
x = multimi[x];
return x;
}
void reuniune(int x, int y) {
multimi[radacina(y)] = radacina(x);
}
string verificare_multime(int x, int y) {
return radacina(x) == radacina(y) ? "DA\n" : "NU\n";
}
int main() {
size_t N, M, i;
fin >> N >> M;
multimi.resize(N + 1);
for (i = 1; i <= N; i++)
multimi[i] = i;
for (i = 1; i <= M; i++) {
int operatie, x, y;
fin >> operatie >> x >> y;
if (operatie == 1)
reuniune(x, y);
else
fout << verificare_multime(x, y);
}
fin.close(), fout.close();
}