Problema
Com inheritance, uma subclasse reutiliza o comportamento da classe pai e adiciona o seu próprio. Todo veículo paga pedágio; um caminhão é um veículo que paga extra pelos seus eixos.
Cada veículo é um dos seguintes:
motorbike: paga 2.car: paga 5.truck <axles>: paga a tarifa de carro 5, mais 3 por cada eixo além dos dois primeiros.
Implemente vehicle_tolls(vehicles).
Entrada
vehicles: Os veículos passando pela praça de pedágio.
Saída
Retorne o total de pedágio arrecadado.
Restrições
0 ≤ número de veículos ≤ 100,000
2 ≤ eixos ≤ 10
Exemplos
Entrada:
vehicles = ["car", "motorbike", "truck 4"]
Saída esperada:
expected = 18
Entrada:
std::vector<std::string> vehicles = {"car", "motorbike", "truck 4"};
Saída esperada:
long long expected = 18;
Entrada:
string[] vehicles = new string[] {"car", "motorbike", "truck 4"};
Saída esperada:
long expected = 18;
Explicação
5 + 2 + (5 + 3 × 2) = 18.
Entrada:
vehicles = ["truck 2", "truck 3"]
Saída esperada:
expected = 13
Entrada:
std::vector<std::string> vehicles = {"truck 2", "truck 3"};
Saída esperada:
long long expected = 13;
Entrada:
string[] vehicles = new string[] {"truck 2", "truck 3"};
Saída esperada:
long expected = 13;
Explicação
Um caminhão com 2 eixos paga apenas a tarifa de carro 5; um caminhão com 3 eixos paga 5 + 3 = 8. Total 13.
Como abordar
Tente sozinho primeiro e depois abra uma dica de cada vez.
Dica 1
Comece pela tarifa de carro, 5, e ajuste por tipo de veículo.
Dica 2
Um caminhão só paga extra pelos eixos além dos dois primeiros.
Dica 3
Motos substituem a regra base por um valor fixo de 2.
Complexidade esperada
tempo O(número de veículos), espaço extra O(1)
Referências
Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.