➤ Problem Link : 979C. Kuro and Walking Route
✅ C++ Solution :
#include<bits/stdc++.h> using namespace std; #define ll long long int int sz[300001]; vector<int> adj[300001]; int x,y; bool dfs(int v, int p) { sz[v]=1; bool f=0; for(int i=0;i<adj[v].size();i++) { if(adj[v][i]==p) continue; if(dfs(adj[v][i],v)) f=1; else sz[v]+=sz[adj[v][i]]; } if(v==y) return 1; return f; } int main() { int n; cin>>n>>x>>y; int u,v; for(int i=1;i<n;i++) { cin>>u>>v; adj[u].push_back(v); adj[v].push_back(u); } dfs(x,-1); cout<<(ll)n*(n-1)-((ll)sz[x]*sz[y]); }
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!!