DontCallMeNuttoPleas

LondonBridge

Apr 2nd, 2020
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.68 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. using pii=pair<int,int>;
  4. int parent[100100];
  5. int n,m;
  6. bool check=0;
  7. int find(int u){
  8.     if(parent[u]!=u) return parent[u]=find(parent[u]);
  9.     return u;
  10. }
  11.  
  12. void merge(int u,int v){
  13.     v=find(v);
  14.     u=find(u);
  15.     parent[u]=u;
  16.     parent[v]=u;
  17. }
  18.  
  19. int main(){
  20.     int c=0;
  21.     int ans=0;
  22.     scanf("%d%d",&n,&m);
  23.     for(int i=1;i<=n;i++){
  24.         parent[i]=i;
  25.     }
  26.     stack<pii> s;
  27.     for(int i=0;i<m;i++){
  28.         int u,v;
  29.         scanf("%d%d",&u,&v);
  30.         s.push({u,v});
  31.     }
  32.     while(!s.empty()){
  33.         int u=s.top().first;
  34.         int v=s.top().second;
  35.         s.pop();
  36.         c++;
  37.         if(find(u)==find(v)){
  38.             continue;
  39.         }else{
  40.             merge(u,v);
  41.             ans=c;
  42.         }
  43.     }
  44.     printf("%d",m-ans);
  45. }
Advertisement
Add Comment
Please, Sign In to add comment