➤ Problem Link : 25D. Roads not only in Berland
✅ C++ Solution :
#include <bits/stdc++.h> using namespace std; #define ll long long int #define pp pair<int,int> #define mp make_pair #define pb push_back int par[1001]; int n; int find(int v) { if(par[v]==v) return v; return par[v]=find(par[v]); } int main() { int p1,p2,a,b; cin>>n; for(int i=1;i<=n;i++) par[i]=i; vector<pp> rem; for(int i=1;i<=n-1;i++) { cin>>a>>b; p1=find(a); p2=find(b); if(p1!=p2) par[p2]=p1; else rem.pb(mp(a,b)); } int prev=-1,k=0; cout<<rem.size()<<"\n"; for(int i=1;i<=n;i++) { if(par[i]==i) { if(prev!=-1) { cout<<rem[k].first<<" "<<rem[k].second<<" "<<prev<<" "<<i<<"\n"; k++; } prev=i; } } }
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!