Сколько дней ждать роста цены

Просмотр в формате PDF

Submit solution

Очки: 170
Ограничение по времени: 2.0s
Ограничение по памяти: 256M

Автор:
Problem type
Allowed languages
C++, Python

Трейдер наблюдает цену актива в течение n дней. Для каждого дня i известна цена закрытия p_i.

Для каждого дня требуется определить, через сколько дней впервые наступит день с строго большей ценой. Иными словами, для каждого i нужно найти минимальный индекс j > i, такой что p_j > p_i, и вывести значение j - i.

Если в будущем для дня i не существует дня с более высокой ценой, то для него ответ равен 0.

Входные данные

Первая строка содержит одно целое число n — количество дней.

Вторая строка содержит n целых чисел p_1, p_2, ..., p_n — цены закрытия по дням.

Выходные данные

Выведите n целых чисел, разделённых пробелами.

Для каждого дня выведите количество дней до ближайшего следующего дня со строго большей ценой. Если такого дня нет, выведите 0.

Ограничения

  • 1 <= n <= 2 * 10^5
  • 1 <= p_i <= 10^9

Примеры

Пример 1

Входные данные

1
1

Выходные данные

0
Пример 2

Входные данные

5
5 4 3 2 1

Выходные данные

0 0 0 0 0

Комментарии

Еще нет ни одного комментария.