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

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

//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;

}

Output Format For each query, print an integer denoting the minimum cost of making libraries accessible to all the citizens on a new line. Sample Input 2 3 3 2 1 1 2 3 1 2 3 6 6 25 1 3 3 4 2 4 1 2 2 3 5 6 Sample Output 4 12 Explanation We perform the following q 2 queries: 1. Hackerland contains n = 3 cities connected by m-3 bidirectional roads. The price of building a library is clb 2 and the price for repairing a road is Croad1 Output Format For each query, print an integer denoting the minimum cost of making libraries accessible to all the citizens on a new line. Sample Input 2 3 3 2 1 1 2 3 1 2 3 6 6 25 1 3 3 4 2 4 1 2 2 3 5 6 Sample Output 4 12 Explanation We perform the following q 2 queries: 1. Hackerland contains n = 3 cities connected by m-3 bidirectional roads. The price of building a library is clb 2 and the price for repairing a road is Croad1

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!