979C. Kuro and Walking Route - Codeforces Solution C++

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