Pagini recente » Cod sursa (job #1354876) | Cod sursa (job #1576831) | Cod sursa (job #1930949) | Cod sursa (job #2870541) | Cod sursa (job #2939769)
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
int i, n, m, op, x, y;
vector<int>parent;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int find(int x)
{
while (parent[x] != x)
{
parent[x] = parent[parent[x]];
x = parent[x];
}
return x;
}
void reuniune(int x, int y) {
int i = find(x);
int j = find(y);
parent[i] = parent[j];
}
int main() {
f >> n >> m;
parent.resize(n + 1);
for (i = 1; i <= n; i++)
parent[i] = i;
for(i=1;i<=m;i++)
{
f >> op;
if (op == 1) {
f >> x >> y;
reuniune(x, y);
}
else {
f >> x >> y;
if (find(x) == find(y))
g << "DA\n";
else
g << "NU\n";
}
}
}