Олимпиадный тренинг

Задача . Минимальный "справа"


Задача

Темы:
Для вектора \(a_0, a_1, \cdots,a_{n-1}\) построить вектор \(i_0, i_1,\cdots, i_{n-1}\) такой, что:
\(i_j >j \\ i_j = n\ если\ a_i=min(a_i,a_{i+1},\cdots, a_{n-1})\\ иначе\ a_j>a_{i_j} \ и\ a_j\leq a_k\ для\ всех\ j<k<i_j \)
то есть \(i_j\) - это индекс "первого элемента справа" меньшего \(a_j\) (или n - если такого нет)
\(a_0, a_1, \cdots,a_{n-1}\) \(i_0, i_1,\cdots, i_{n-1}\)
2 3 1 1 5 1 2 2 6 6 5 1
5 4 3 2 1 1 2 3 4 5
1 2 3 4 5 5 5 5 5 5

Напишите фрагмент кода, реализующий данную программу

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя