Pagini recente » Cod sursa (job #2651024) | Cod sursa (job #2298524) | Profil yttomp3 | Cod sursa (job #1458800) | Cod sursa (job #1998984)
#include<fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int arb[100001], root1,root2,answ,i,k,n,type,elem1,elem2;
void find_root( int x ){
if( arb[x] < 0 ){
answ = x;
}
else{
find_root( arb[x] );
}
return;
}
int main(){
in >> n >> k;
for( i = 1; i <= n; i ++ ){
arb[i] = -1;
}
for( i = 1; i <= k; i ++ ){
in >> type >> elem1 >> elem2;
if( type == 2 ){
find_root( elem1 );
root1 = answ;
find_root( elem2 );
root2 = answ;
if( root1 == root2 ){
out<<"DA"<<"\n";
}
else{
out<<"NU"<<"\n";
}
}
if( type == 1 ){
find_root( elem1 );
root1 = answ;
find_root( elem2 );
root2 = answ;
if( arb[root1] <= arb[root2] ){
arb[root1] += arb[root2];
arb[root2] = root1;
}
else{
arb[root2] += arb[root1];
arb[root1] = root2;
}
}
}
return 0;
}