Pagini recente » Cod sursa (job #1068830) | Cod sursa (job #564031) | Cod sursa (job #2184333) | Cod sursa (job #1846404) | Cod sursa (job #3254888)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n,m,cod,x,y;
int t[100005],inalt[100005];
int rad(int nod){
if(nod==t[nod]) return nod;
int rnod=rad(t[nod]);
t[nod]=rnod;
return rnod;
}
void reuniune(){
int rx=rad(x);
int ry=rad(y);
if(inalt[rx]>inalt[ry]) t[ry]=rx;
else if(inalt[ry]>inalt[rx]) t[rx]=ry;
else {
t[ry]=rx;
inalt[rx]++;
}
}
bool interogare(){
return rad(x)==rad(y);
}
int main()
{ fin>>n>>m;
for(int i=1; i<=n; i++) t[i]=i;
for(;m;m--){
fin>>cod>>x>>y;
if(cod==1) reuniune();
if(cod==2) if(interogare()) fout<<"DA\n"; else fout<<"NU\n";
}
}