Наступний більший елемент

Переглянути як PDF

Надіслати розвʼязок


Бали: 15,00 (частково)
Ліміт часу: 1.0s
Ліміт памʼяті: 256M
Ввід: stdin
Вивід: stdout

Тип задачі

Задано масив із ~n~ цілих чисел ~a_1, a_2, \ldots, a_n~.

Для кожного індексу ~i~ (~1 \le i \le n~) знайдіть індекс найближчого праворуч елемента, який строго більший за ~a_i~. Якщо такого елемента не існує (тобто всі елементи праворуч від ~a_i~, включно з ним самим, не перевищують ~a_i~), виведіть для цього індексу значення ~-1~.

Формально: потрібно знайти найменший індекс ~j > i~ такий, що ~a_j > a_i~, або ~-1~, якщо такого ~j~ не існує.

Вхідні дані

  • Перший рядок містить одне ціле число ~n~ (~1 \le n \le 2 \cdot 10^5~).
  • Другий рядок містить ~n~ цілих чисел ~a_1, a_2, \ldots, a_n~ (~-10^9 \le a_i \le 10^9~).

Вихідні дані

Виведіть ~n~ цілих чисел через пробіл: для кожного ~i~ — індекс найближчого праворуч більшого елемента (нумерація індексів від ~1~), або ~-1~, якщо такого немає.

Приклади

Приклад 1

Вхідні дані:

5
2 1 5 3 4

Вихідні дані:

3 3 -1 5 -1

Пояснення: для ~a_1=2~ найближчий більший праворуч — ~a_3=5~ (індекс ~3~). Для ~a_2=1~ — теж ~a_3=5~ (індекс ~3~). Для ~a_3=5~ більшого елемента праворуч немає — ~-1~. Для ~a_4=3~ — ~a_5=4~ (індекс ~5~). Для ~a_5=4~ праворуч нічого немає — ~-1~.

Приклад 2

Вхідні дані:

4
4 3 2 1

Вихідні дані:

-1 -1 -1 -1

Пояснення: масив спадає, тому для кожного елемента праворуч немає більшого.

Приклад 3

Вхідні дані:

1
100

Вихідні дані:

-1

Коментарі

Будь ласка, прочитайте правила перед коментуванням.


Наразі коментарів немає.