Pagini recente » Borderou de evaluare (job #3335723) | Cod sursa (job #3357756) | Cod sursa (job #3336284) | Cod sursa (job #3241206) | Cod sursa (job #3317617)
#include <bits/stdc++.h>
using namespace std;
ifstream f("disjoint.in");
ofstream o("disjoint.out");
int n,m;
int cod, x, y;
int sef[100001];
int boss(int nod){
if(nod==sef[nod])
return nod;
else{
return sef[nod]=boss(sef[nod]);
}
}
void unire(int x, int y){
int sef_x=boss(x);
int sef_y=boss(y);
sef[sef_y]=sef_x;
}
int main()
{
f>>n>>m;
for(int i=1;i<=n;i++)
sef[i]=i;
for(int i=1;i<=m;i++){
f>>cod>>x>>y;
if(cod==1){
unire(x,y);
}
else if(cod==2){
if(boss(x)==boss(y))
o<<"DA\n";
else
o<<"NU\n";
}
}
return 0;
}