Pagini recente » Cod sursa (job #3182600) | Cod sursa (job #3129792) | Cod sursa (job #502699) | Cod sursa (job #1056744) | Cod sursa (job #2050580)
#include <fstream>
#define DIM 100010
using namespace std;
int t[DIM], c[DIM];
int n, m;
inline void Union(int x, int y)
{
t[y] = x;
c[x] += c[y];
}
int Find(int x)
{
int r = x, y;
while (t[r] != 0)
r = t[r];
while(r != x)
{
y = t[x];
t[x] = r;
x = y;
}
return r;
}
int main()
{
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
fin >> n >> m;
for (int i = 1;i <= n;++i)
c[i] = 1;
int op, x, y;
for (int i = 1;i <= m;++i)
{
fin >> op >> x >> y;
switch(op)
{
case 1:
x = Find(x);
y = Find(y);
if (x != y)
Union(x, y);
break;
case 2:
x = Find(x);
y = Find(y);
if (x == y)
fout << "DA\n";
else
fout << "NU\n";
break;
}
}
fin.close();
fout.close();
return 0;
}