Pagini recente » Cod sursa (job #2388716) | Cod sursa (job #3220887) | Cod sursa (job #1163515) | Cod sursa (job #819287) | Cod sursa (job #1989343)
#define DM 100001
#include <fstream>
using namespace std;
ifstream fi ("disjoint.in");
ofstream fo ("disjoint.out");
int p[DM], o, n, m, a, b;
bool sameset (int x, int y) {
return (p[x] == p[y]);
}
int findset (int x)
{
if (p[x] == x)
return x;
return p[x] = findset(p[x]);
}
int mergeset (int x, int y) {
p[y] = findset(x);
}
int main ()
{
fi >> n >> m;
for (int i = 1; i <= n; ++i)
p[i] = i;
for (int i = 1; i <= m; ++i)
{
fi >> o >> a >> b;
if (o == 2)
if (sameset(a, b))
fo << "DA\n";
else
fo << "NU\n";
else
{
findset(a);
mergeset(b, a);
}
}
return 0;
}