➤ 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!!
