Pagini recente » Cod sursa (job #2311279) | Monitorul de evaluare | Cod sursa (job #536928) | Cod sursa (job #1047255) | Cod sursa (job #3317624)
#include <fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int sef[100001];
int s(int x)
{
if (sef[x] == x)
return x;
else
return sef[x] = s(sef[x]);
}
void u(int x, int y)
{
int sefx = s(x), sefy = s(y);
sef[sefy] = sefx;
}
int main()
{
int n, m, i, cod, x, y, sefx, sefy;
in >> n >> m;
for (i=1;i<=n;i++)
sef[i] = i;
for (i=1;i<=m;i++)
{
in >> cod >> x >> y;
if (cod == 1 )
{
sefx = s(x);
sefy = (y);
if (sefx != sefy)
u(x, y);
}
else
{
sefx = s(x);
sefy = s(y);
if (sefx == sefy)
out << "DA" << "\n";
else
out << "NU" << "\n";
}
}
return 0;
}