Pagini recente » Cod sursa (job #260375) | Cod sursa (job #2141481) | Cod sursa (job #240778) | Cod sursa (job #2780251) | Cod sursa (job #2700131)
#include <bits/stdc++.h>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int n, m, t[100005];
void leaga(int x, int y)
{
if(t[x] < t[y])
t[y] = t[x];
else
t[x] = t[y];
}
int radacina(int a)
{
if(t[a] == a)
return a;
return t[a] = radacina(t[a]);
}
int main()
{
f >> n >> m;
for(int i = 1; i <= n; i++)
t[i] = i;
for(int i = 1; i <= m; i++)
{
int task, x, y;
f >> task >> x >> y;
if(task == 1)
{
int radx = radacina(x);
int rady = radacina(y);
leaga(radx, rady);
}
if(task == 2)
{
int radx = radacina(x);
int rady = radacina(y);
if(radx == rady)
g << "DA\n";
else
g << "NU\n";
}
}
return 0;
}