Pagini recente » Cod sursa (job #843873) | Cod sursa (job #1904300) | Cod sursa (job #856319) | Cod sursa (job #2138937) | Cod sursa (job #2137011)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
const int N=100001;
int h[N],t[N];
int radacina (int x)
{
if (t[x]==0)
{
return x;
}
t[x]=radacina(t[x]);
return t[x];
}
void unioni (int x, int y)
{
int rx=radacina(x),ry=radacina(y);
if (h[rx]<h[ry])
{
t[rx]=ry;
}
else
{
t[ry]=rx;
if (h[rx]==h[ry])
{
++h[ry];
}
}
}
int main()
{
int n,m,x,y,q,i;
f>>n>>m;
for (i=1; i<=m; i++)
{
f>>q>>x>>y;
if (q==1)
{
unioni(x,y);
}
else
{
if (radacina(x)==radacina(y))
g<<"DA"<<'\n';
else g<<"NU"<<'\n';
}
}
return 0;
}