Pagini recente » Cod sursa (job #3262814) | Cod sursa (job #2248294) | Cod sursa (job #1625710) | Cod sursa (job #2918529) | Cod sursa (job #2357627)
#include <iostream>
#include <cstdio>
using namespace std;
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))
cout<<"DA"<<endl;
else
cout<<"NU"<<endl;
}
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
int n,m,i,tip,a,b;
cin>>n>>m;
for(i=1;i<=n;i++)
sef[i]=i;
for(i=1;i<=m;i++)
{
cin>>tip>>a>>b;
if(tip==1)
unire(a,b);
if(tip==2)
inters(a,b);
}
return 0;
}