Ctrl K

Минуты на вывоз вторсырья

Средняя
На улице стоят дома с номерами от 0 до n − 1. У дома i выставлены мешки — строка bins[i], где каждая буква обозначает один мешок: M — металл, P — бумага, G — стекло. Пустая строка значит, что у дома ничего нет. Погрузка одного мешка занимает 1 минуту. Дорога от дома i до дома i + 1 занимает drive[i] минут. Для каждого вида сырья есть своя машина. Все машины стартуют у дома 0 и едут только вперёд по порядку домов; машине не нужно ехать дальше последнего дома, где есть её сырьё, а если такого сырья нет вовсе, она не выезжает. В каждый момент работает только одна машина: пока одна едет или грузит, остальные стоят. Верните общее число минут, за которое будет вывезено всё сырьё.
Пример 1
bins=['PM', 'G', 'P'], drive=[5, 2] → 16

Металл: 1 минута на погрузку у дома 0. Стекло: 5 минут дороги + 1 минута погрузки. Бумага: 1 + 5 + 2 + 1 = 9 минут. Итого 1 + 6 + 9 = 16.

Пример 2
bins=['GGG', 'MM', 'MG', 'G'], drive=[4, 1, 3] → 21

Стекло едет до дома 3: 8 минут дороги и 5 единиц груза — 13. Металл доезжает до дома 2: 5 минут дороги и 3 единицы — 8. Бумаги нет. Итого 21.

Пример 3
bins=['MPG'], drive=[] → 3

Дом один, ехать никуда не нужно: три машины тратят по минуте на погрузку.

Ограничения
  • 1 ≤ bins.length ≤ 10⁵
  • 0 ≤ bins[i].length ≤ 10
  • bins[i] состоит только из букв M, P и G
  • drive.length = bins.length − 1
  • 1 ≤ drive[i] ≤ 100
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПрокрутка букв по префиксам СредняяПалиндром после пары правок СредняяСобрать все шары в одной коробке СредняяКниги между подпорками СредняяПрокрутка букв по отрезкам Средняя
загружаем Python…
Вход
bins=['PM', 'G', 'P'], drive=[5, 2]
Ожидается
16

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 104 теста на сервере, включая скрытые.