Pagini recente » Cod sursa (job #2395015) | Cod sursa (job #2353524) | Cod sursa (job #139350) | Cod sursa (job #2777049) | Cod sursa (job #2352565)
#include <fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int sef[100001];
int sefsuprem (int i)
{
if(sef[i]==i)
{
return i;
}
return sef[i]=sefsuprem(sef[i]);
}
void unire(int x,int y)
{
sef[x]=sefsuprem(x);
sef[y]=sefsuprem(y);
sef[sef[x]]=sef[y];
}
int main()
{
int n,m,p,a,b;
in>>n>>m;
for(int j=1;j<=n;j++)
{
sef[j]=j;
}
for(int j=1;j<=m;j++)
{
in>>p>>a>>b;
if(p==1)
unire(a,b);
if(p==2)
{
if(sefsuprem(a)==sefsuprem(b))
out<<"DA"<<'\n';
else
out<<"NU"<<'\n';
}
}
return 0;
}