Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- using pii=pair<int,int>;
- int parent[100100];
- int n,m;
- bool check=0;
- int find(int u){
- if(parent[u]!=u) return parent[u]=find(parent[u]);
- return u;
- }
- void merge(int u,int v){
- v=find(v);
- u=find(u);
- parent[u]=u;
- parent[v]=u;
- }
- int main(){
- int c=0;
- int ans=0;
- scanf("%d%d",&n,&m);
- for(int i=1;i<=n;i++){
- parent[i]=i;
- }
- stack<pii> s;
- for(int i=0;i<m;i++){
- int u,v;
- scanf("%d%d",&u,&v);
- s.push({u,v});
- }
- while(!s.empty()){
- int u=s.top().first;
- int v=s.top().second;
- s.pop();
- c++;
- if(find(u)==find(v)){
- continue;
- }else{
- merge(u,v);
- ans=c;
- }
- }
- printf("%d",m-ans);
- }
Advertisement
Add Comment
Please, Sign In to add comment