Pagini recente » Cod sursa (job #3160258) | Cod sursa (job #1787165) | Cod sursa (job #2663820) | Cod sursa (job #953859) | Cod sursa (job #1438318)
#include <fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int T[100001],h[100001],n;
int find(int nod){
if(T[nod])
return find(T[nod]);
else
return nod;
}
void Union(int x,int y){
int rx=find(x),ry=find(y),hx=h[rx],hy=h[ry];
if(hx==hy){
T[ry]=rx;
h[rx]++;
}
else
if(hx>hy)
T[ry]=rx;
else
T[rx]=ry;
}
int main()
{
int m,t,x,y;
in>>n>>m;
while(m--){
in>>t>>x>>y;
if(t==1)
Union(x,y);
else{
int rx=find(x),ry=find(y);
if(rx==ry)
out<<"DA"<<"\n";
else
out<<"NU"<<"\n";
}
}
return 0;
}