Сортировочный конвейер на складе Wildberries замкнут в кольцо из n лотков. weights[i] — вес посылки в граммах на лотке i, лента идёт от i к i + 1, после последнего лотка — снова нулевой.
Для каждого лотка верните, через сколько шагов по ходу ленты встретится посылка строго тяжелее. Если такой нет на всём кольце, верните −1.
В работе: Манипулятор снимает тяжёлые посылки на отдельную паллету и ждёт следующую тяжелее текущей: на кольце 20 000 лотков, наивный обход — до 4·10⁸ сравнений за круг.
Пример 1
weights = [900, 300, 1200, 400, 1200]
[2, 1, -1, 1, -1]
От последнего лотка (1200 г) лента идёт к 900, 300 и 1200 — тяжелее нет, −1.
Пример 2
weights = [500, 700, 200]
[1, -1, 1]
От 200 г через один шаг — 500 г.
Ограничения
- 1 ≤ n ≤ 2·10⁵
- 1 ≤
weights[i]≤ 10⁵ - Лимит — 2 с на тест (1500 мс).
print() и console.log() уходят в консоль.
def steps_to_heavier(weights):
Источник: наша задача на данных Wildberries. Условие пересказано своими словами.
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.