Pagini recente » Cod sursa (job #1442056) | Monitorul de evaluare | Rating Nedelcescu Radu Costin (birotx) | Cod sursa (job #1581845) | Cod sursa (job #2786743)
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
const int nmax=100000;
int r[nmax+1], s[nmax+1];
void update(int x){
int i=x;
while(r[i]!=r[r[i]]){
i=r[i];
}
int j=x;
while(r[j]!=r[r[j]]){
int rj=r[j];
r[j]=r[i];
j=rj;
}
}
int main(){
int n,m;
fin>>n>>m;
for(int i=1;i<=n;i++){
r[i]=i;
s[i]=1;
}
for(int i=1;i<=m;i++){
int cod,x,y;
fin>>cod>>x>>y;
update(x);
update(y);
if(cod==1){
if(s[r[x]]>s[r[y]]){
int aux=x;
x=y;
y=aux;
}
s[r[y]]+=s[r[x]];
r[r[x]]=r[y];
r[x]=r[y];
}else{
if(r[x]==r[y]){
fout<<"DA\n";
}else{
fout<<"NU\n";
}
}
}
return 0;
}