Pagini recente » Cod sursa (job #1535811) | Cod sursa (job #2599982) | Cod sursa (job #850901) | ix | Cod sursa (job #3181054)
#include <fstream>
using namespace std;
ifstream cin ("disjoint.in");
ofstream cout ("disjoint.out");
int tata[100001],n,m,x,y,rx,ry,tip;
int rad (int x) {
while(tata[x]>0) {
x=tata[x];
}
return x;
}
int main() {
cin >>n >>m;
for(int i=1;i<=n;i++)
tata[i]=-1;
for(int i=1;i<=m;i++) {
cin>>tip >>x >>y;
if(tip==1) {
rx=rad(x);
ry=rad(y);
if(rx!=ry) {
if(tata[rx]<tata[ry]) { /// rx devine rad arborelui unificat
tata[rx]+=tata[ry];
tata[ry]=rx;
}
else {
tata[ry]+=tata[rx]; /// ry devine rad arborelui unificat
tata[rx]=ry;
}
}
}
else {
rx=rad(x);
ry=rad(y);
if(rx==ry)
cout<<"DA\n";
else
cout<<"NU\n";
}
}
return 0;
}