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

Задача . B. Очередь


В очереди в аэропорту стоят n моржей. Они пронумерованы начиная с конца очереди: морж с номером 1 стоит в конце очереди, а морж с номером n — в начале. Морж с номером i имеет возраст ai.

Морж с номером i становится недовольным, если впереди него стоит более молодой морж, то есть существует такое j (i < j), что ai > aj. Недовольство i-го моржа равно количеству моржей между ним и самым удаленным моржом впереди, который моложе i-го. То есть чем дальше от него стоит этот молодой морж, тем сильнее недовольство.

Менеджер аэропорта попросил вас посчитать для каждого из n моржей в очереди его недовольство.

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

В первой строке записано целое число n (2 ≤ n ≤ 105) — количество моржей в очереди. Во второй строке записаны целые числа ai (1 ≤ ai ≤ 109).

Обратите внимание, что некоторые моржи могут иметь одинаковый возраст, но для возникновения недовольства необходимо, чтобы тот морж, что ближе к началу, был строго моложе другого.

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

Выведите n чисел: если i-ый морж всем доволен, выведите «-1» (без кавычек). Иначе выведите недовольство i-го моржа: количество моржей, которые стоят между ним и самым удаленным моржом впереди него, который более молод.


Примеры
Входные данныеВыходные данные
1 6
10 8 5 3 50 45
2 1 0 -1 0 -1
2 7
10 4 6 3 2 8 15
4 2 1 0 -1 -1 -1
3 5
10 3 1 10 11
1 0 -1 -1 -1

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

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