Pagini recente » Cod sursa (job #1643155) | Cod sursa (job #524341) | Cod sursa (job #3189796) | Cod sursa (job #1957104) | Cod sursa (job #3140665)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
const int Max = 100001;
vector<int>t(Max, 0);
void leaga(int a,int b) {
t[a] = t[b];
}
int radacina(int a) {
if (t[a] == a)
return a;
else
return t[a] = radacina(t[a]);
}
int main() {
int n, m;
f >> n >> m;
for (int i = 1; i <= n; ++i)
t[i] = i;
while (m--) {
int cer, x, y;
f >> cer >> x >> y;
if (cer == 1) {
int r1 = radacina(x);
int r2 = radacina(y);
if (r1 != r2)
leaga(x, y);
}
else {
int r1 = radacina(x);
int r2 = radacina(y);
if (r1 == r2)
g << "DA\n";
else
g << "NU\n";
}
}
return 0;
}