Pagini recente » Cod sursa (job #947030) | Cod sursa (job #174189) | Cod sursa (job #83620) | Cod sursa (job #1693769) | Cod sursa (job #2357645)
#include <fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int sef[100005];
int sefsup(int x)
{
if(sef[x]==x)
return x;
else
return sef[x]=sefsup(sef[x]);
}
void unire(int x, int y)
{
int sefsx=sefsup(x),sefsy=sefsup(y);
sef[sefsy]=sefsx;
}
void inters(int x, int y)
{
if(sefsup(x)==sefsup(y))
out<<"DA"<<endl;
else
out<<"NU"<<endl;
}
int main()
{
// freopen("disjoint.in","r",stdin);
// freopen("disjoint.out","w",stdout);
int n,m,i,tip,a,b;
in>>n>>m;
for(i=1;i<=n;i++)
sef[i]=i;
for(i=1;i<=m;i++)
{
in>>tip>>a>>b;
if(tip==1)
unire(a,b);
if(tip==2)
inters(a,b);
}
return 0;
}