Pagini recente » Cod sursa (job #670634) | Cod sursa (job #2501849) | Istoria paginii runda/2233/clasament | Cod sursa (job #452832) | Cod sursa (job #2419771)
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int tata[100000],cod,x,y,grad[100000],fx,fy,n,m,i;
int findfather(int node)
{
if(tata[node]==node)
return node;
tata[node]=findfather(tata[node]);
return tata[node];
}
int main()
{
f>>n>>m;
for(i=1;i<=n;++i)
{
tata[i]=i;
grad[i]=1;
}
for(i=1;i<=m;++i)
{
f>>cod>>x>>y;
fx=findfather(x);
fy=findfather(y);
if(cod==2)
{
if(fx==fy)
g<<"DA\n";
else
g<<"NU\n";
}
else
if(grad[fx]>grad[fy])
{
tata[fy]=fx;
grad[fx]=grad[fx]+grad[fy];
}
else
{
tata[fx]=fy;
grad[fy]=grad[fy]+grad[fx];
}
}
return 0;
}