➤ Problem Link : 34D. Road Map
✅ C++ Solution :
#include<bits/stdc++.h> using namespace std; #define ll long long int int parent[500001]; vector<int> adj[500001]; void dfs(int v, int p) { for(int i=0;i<adj[v].size();i++) { if(adj[v][i]==p) continue; parent[adj[v][i]]=v; dfs(adj[v][i],v); } } int main() { int n,r1,r2,p; cin>>n>>r1>>r2; for(int i=1;i<=n;i++) { if(i==r1) continue; cin>>p; adj[i].push_back(p); adj[p].push_back(i); } parent[r2]=r2; dfs(r2,-1); for(int i=1;i<=n;i++) { if(i==r2) continue; cout<<parent[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!!