Easy 0 solved 0% acceptance

Vehicle Tolls

Charge tolls for motorbikes, cars and trucks where trucks extend the basic vehicle rule with axles.

What you'll learn

  • Reuse a parent's rule in a subclass
  • Add extra cost on top of a base rate
  • Pick the right class from a description

Problem

With inheritance, a subclass reuses its parent's behaviour and adds its own. Every vehicle pays a toll; a truck is a vehicle that pays extra for its axles.

Each vehicle is one of:

  • motorbike: pays 2.
  • car: pays 5.
  • truck <axles>: pays the car rate 5, plus 3 for every axle beyond the first two.

Implement vehicle_tolls(vehicles).

Input

vehicles: The vehicles passing the toll gate.

Output

Return the total toll collected.

Constraints

0 ≤ number of vehicles ≤ 100,000

2 ≤ axles ≤ 10

Examples

Example 1
Input:
vehicles = ["car", "motorbike", "truck 4"]

Expected output:
expected = 18
Input:
std::vector<std::string> vehicles = {"car", "motorbike", "truck 4"};

Expected output:
long long expected = 18;
Input:
string[] vehicles = new string[] {"car", "motorbike", "truck 4"};

Expected output:
long expected = 18;

Explanation

5 + 2 + (5 + 3 × 2) = 18.

Example 2
Input:
vehicles = ["truck 2", "truck 3"]

Expected output:
expected = 13
Input:
std::vector<std::string> vehicles = {"truck 2", "truck 3"};

Expected output:
long long expected = 13;
Input:
string[] vehicles = new string[] {"truck 2", "truck 3"};

Expected output:
long expected = 13;

Explanation

A 2-axle truck pays just the car rate 5; a 3-axle truck pays 5 + 3 = 8. Total 13.

How to approach it

Try on your own first, then open one hint at a time.

Hint 1

Start from the car rate of 5 and adjust per vehicle type.

Hint 2

A truck pays extra only for axles beyond the first two.

Hint 3

Motorbikes override the base rule with a fixed 2.

Expected complexity

O(number of vehicles) time, O(1) extra space

References

This challenge is adapted for CodeUtility. Follow the statement and constraints above.

Learn from others

Community solutions

No published solutions yet. Solve this challenge to share the first one.