Pagini recente » Cod sursa (job #774724) | Cod sursa (job #309401) | Cod sursa (job #2770468) | Cod sursa (job #2878504) | Cod sursa (job #1801711)
#include <fstream>
using namespace std;
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int Cap[1000005],N,M,x,a,b;
int find(int nod)
{
if( Cap[nod]==nod) return nod;
int cap=find(Cap[nod]);
Cap[nod]=cap;
return cap;
}
void unire(int a, int b)
{
a=find(a);
b=find(b);
Cap[a]=b;
}
int main()
{
cin>>N>>M;
for(int i=1; i<=N;++i)
Cap[i]=i;
for(int i=1; i<=M; ++i)
{
cin>>x>>a>>b;
if(x==1) unire(a,b);
else if(x==2 && find(a)==find(b)) cout<<"DA\n";
else cout<<"NU\n";
}
return 0;
}