Pagini recente » Cod sursa (job #2540004) | Cod sursa (job #2427459) | Cod sursa (job #2737761) | Cod sursa (job #2539441) | Cod sursa (job #1337967)
#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[y]=x;
else 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)) fout<<"DA"<<'\n';
else fout<<"NU"<<'\n';
}
else
{
Union(Find(x),Find(y));
}
}
return 0;
}