Question: //Define function long long int roadsAndLibraries(int m, int n, int c_lib, int c_road, vector > cities) { //Declare variable int c[n]={0}; //Declare variable long long

![int c_road, vector > cities) { //Declare variable int c[n]={0}; //Declare variable](https://dsd5zvtm8ll6.cloudfront.net/si.experts.images/questions/2024/09/66f507299cb46_18566f50729116cb.jpg)
//Define function
long long int roadsAndLibraries(int m, int n, int c_lib, int c_road, vector > cities)
{
//Declare variable
int c[n]={0};
//Declare variable
long long int lAns=0;
//If condition satisfies
if(c_lib
{
//Assign value
lAns=c_lib*n;
//Return
return lAns;
}
//Declare array
bool visited[n]={0};
//Declare
int comp=0,t=0;
//If condition satisfies
if(c_lib>c_road)
{
//Declare variables
int i,j;
//Loop
for(i=0;i { //If condition satisfies if(visited[cities[i][0]]*visited[cities[i][1]]==0) { //If condition satisfies if(visited[cities[i][0]]+visited[cities[i][1]]==0) { //Assign value visited[cities[i][0]]=1; visited[cities[i][1]]=1; //Assign value c[cities[i][0]]=comp+1; //Assign value c[cities[i][1]]=comp+1; //Increment comp+=1; //Increment lAns+=1; } //If condition satisfies else if(visited[cities[i][0]]+visited[cities[i][1]]==1) { //If condition satisfies if(visited[cities[i][0]]==1) { //Assign value c[cities[i][1]]=c[cities[i][0]]; } //If condition satisfies else if(visited[cities[i][1]]==1) { //Assign value c[cities[i][0]]=c[cities[i][1]]; } //Assign value visited[cities[i][0]]=1; //Assign value visited[cities[i][1]]=1; //Increment lAns+=1; } } //If condition satisfies else if(visited[cities[i][0]]*visited[cities[i][1]]==1) { //If condition satisfies if(c[cities[i][0]]!=c[cities[i][1]]) { //Increment lAns+=1; comp-=1; //Assign value c[cities[i][0]]=c[cities[i][1]]; } } } //Assign value lAns=(lAns*c_road)+(comp*c_lib); } //Return return lAns; }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
