Pagini recente » Cod sursa (job #120781) | Cod sursa (job #1381948) | Cod sursa (job #2101171) | Cod sursa (job #2130576) | Cod sursa (job #1375224)
#include <fstream>
using namespace std;
ifstream f ("disjoint.in");
ofstream g ("disjoint.out");
int gr[100005];
int n, m;
int grupa (int nod)
{
if (gr[nod] == nod)
return nod;
gr[nod] = grupa(gr[nod]);
return gr[nod];
}
void combina (int x, int y)
{
gr[grupa(x)] = grupa(y);
}
void citire ()
{
f >> n >> m;
for (int i = 1; i <= n; i ++)
gr[i] = i;
}
int main()
{
citire ();
int a, b, o;
for (int i = 1; i <= m; i ++)
{
f >> o >> a >> b;
if (o == 1)
combina (a, b);
else
if (grupa(a) == grupa(b))
g << "DA\n";
else
g << "NU\n";
}
f.close ();
g.close ();
return 0;
}