Ctrl K

Наклейки за баллы

Сложная
Ученики стоят в одну шеренгу, у каждого есть балл за контрольную: scores[i]. Учительница раздаёт наклейки по двум правилам: - каждый получает хотя бы одну наклейку; - если у ученика балл выше, чем у соседа по шеренге, то и наклеек у него должно быть больше, чем у этого соседа. Верните наименьшее общее число наклеек, которого хватит, чтобы выполнить оба правила.
Пример 1
scores=[3, 5, 5, 1] → 6

Можно раздать 1, 2, 2, 1: второй и третий набрали больше своих соседей с меньшим баллом, а между собой они равны, поэтому ограничений друг на друга нет. Итого 6.

Пример 2
scores=[9, 7, 4] → 6

Баллы убывают, значит наклейки тоже должны убывать: 3, 2, 1 — всего 6.

Пример 3
scores=[2] → 1
Ограничения
  • 1 ≤ len(scores) ≤ 2·10⁴
  • 0 ≤ scores[i] ≤ 2·10⁴
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиНаибольшее число из двух рядов СложнаяСколько монет докупить СложнаяСамый тяжёлый день чтения СложнаяНаращиваем капитал проектами СложнаяВыравнивание полок Сложная
загружаем Python…
Вход
scores=[3, 5, 5, 1]
Ожидается
6

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