Advertisement
a53

disjoint1

a53
Feb 5th, 2020
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. int n,t[32005],m,mx=999999;
  4.  
  5. int rad(int nod)
  6. {
  7. while(t[nod]>0)
  8. nod=t[nod];
  9. return nod;
  10. }
  11.  
  12. int main()
  13. {
  14. cin>>n>>m;
  15. for(int i=1; i<=n; i++)
  16. t[i]=-1;
  17. for(;m;m--)
  18. {
  19. int x,y,z;
  20. cin>>x;
  21. if(x==1)
  22. {
  23. cin>>y>>z;
  24. int xx=rad(y), yy=rad(z);
  25.  
  26. if(xx!=yy){
  27.  
  28. if(t[xx]>t[yy])
  29. {
  30. t[yy]+=t[xx] ;
  31. t[xx]=yy;
  32. } else
  33. {
  34. t[xx]+=t[yy] ;
  35. t[yy]=xx;
  36. }
  37. mx=min(t[xx],mx);
  38. mx=min(t[yy],mx);
  39. }
  40.  
  41. }
  42. else if(x==2)
  43. {
  44. cin>>y>>z;
  45. int xx=rad(y), yy=rad(z);
  46. if(xx==yy)
  47. cout<<"DA"<<"\n";
  48. else
  49. cout<<"NU"<<"\n";
  50. }
  51. else
  52. {
  53. cout<<mx*(-1)<<"\n";
  54. }
  55. }
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement