Pagini recente » Cod sursa (job #1214340) | Cod sursa (job #712533) | Cod sursa (job #1185768) | Cod sursa (job #449045) | Cod sursa (job #2173844)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("disjoint.in");
ofstream out ("disjoint.out");
int T,N,M,D[100005],x,y;
int daddy(int j)
{
if(D[j]==j) return j;
return D[j]=daddy(D[j]);
}
void unite(int x,int y)
{
D[daddy(x)] = daddy(y);
}
bool same (int x,int y)
{
return (daddy(x)==daddy(y));
}
int main()
{
in>>N>>M;
for(int i = 1; i <= N; ++i) D[i] = i;
for(int i = 1; i <= M; ++i){
in>>T>>x>>y;
if(T == 1) unite(x,y);
else {
if(same(x,y)) out<<"DA\n";
else out<<"NU\n";
}
}
return 0;
}