Pagini recente » Cod sursa (job #812854) | Cod sursa (job #2614420) | Cod sursa (job #2578173) | Cod sursa (job #2539607) | Cod sursa (job #1337936)
#include <iostream>
#include <fstream>
#define Dmax 100200
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int T[Dmax],Rng[Dmax];
int Find(int x)
{
int R;
R=x;
while(T[R]!=R) R=T[R];
return R;
}
void Union(int x, int y)
{
if(x!=y)
T[x]=y;
}
int main()
{
int N,M,op,x,y,i;
fin>>N>>M;
for(i=1;i<=N;i++){T[i]=i; Rng[i]=1;}
for(i=1;i<=M;i++)
{
fin>>op>>x>>y;
if(op==2)
{
if(Find(x)==Find(y)) cout<<"DA"<<'\n';
else cout<<"NU"<<'\n';
}
else
{
Union(Find(x),Find(y));
}
}
return 0;
}