fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int a[100000],size[10000];
  4. int find_parent(int x){
  5. if(x!=a[x]){
  6. find_parent(a[x]);
  7. }
  8. return a[x];
  9. }
  10. int uniono (int ay,int b){
  11. int g=0;
  12. int x=find_parent(ay);
  13. int y=find_parent(b);
  14. if(size[x]>size[y]){
  15. a[y]=x;
  16. g=size[x]-size[y];
  17. size[x]+=size[y];
  18. }
  19. else{
  20. a[x]=y;
  21. g=size[y]-size[x];
  22. size[y]+=size[x];
  23. }
  24. return g;
  25. }
  26. int main() {
  27. int n,q,i,j,ay,b,ans;
  28. cin>>n>>q;
  29. for(i=1;i<=n;i++){
  30. a[i]=i;
  31. size[i]=1;
  32. }
  33. for(i=0;i<q;i++){
  34. cin>>ay>>b;
  35. ans=uniono(ay,b);
  36. cout<<ans<<endl;
  37. }
  38. }
Success #stdin #stdout 0s 3844KB
stdin
2 1
1 2
stdout
0