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

Задача . A. GukiZ и контест


Профессору GukiZ нравятся контесты по программированию. Особенно ему нравится оценивать своих учеников по подготовленным им контестам. Сейчас он подготовил очередной контест.

Всего на занятия ходят n учеников, и до начала контеста у каждого из них есть рейтинг — некоторое положительное целое число. Ученики пронумерованы от 1 до n. Обозначим рейтинг i-го ученика за ai. GukiZ ожидает, что его ученики займут места согласно своим рейтингам.

Он считает, что каждый ученик займет место, равное . В частности, если у ученика A рейтинг строго ниже, чем у ученика B, ученик A займёт строго худшее место, чем ученик B, а если у двух учеников равные рейтинги, они разделят одно и то же место.

GukiZ хотел бы, чтобы вы определили, какие места займут ученики, если всё пойдёт именно так, как он ожидает. Помогите ему в этом.

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

В первой строке содержится целое число n (1 ≤ n ≤ 2000), количество учеников у GukiZ.

Во второй строке записано n чисел a1, a2, ... an (1 ≤ ai ≤ 2000), где ai — это рейтинг i-ого ученика (1 ≤ i ≤ n).

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

В единственной строке выведите для каждого из n учеников место, которое он должен занять на контесте, в том же порядке, в котором они появляются во вводе.

Примечание

В первом примере ученики под номерами 2 и 3 расположены на первом месте (как ученики с самым высоким рейтингом), а ученик под номером 1 занимает третье место, так как есть ровно два ученика с рейтингом выше.

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

В третьем примере ученики 2 и 5 делят первое место с наибольшим рейтингом, далее следует ученик 4 на третьем месте, а ученики номер 1 и 3 делят четвертое место.


Примеры
Входные данныеВыходные данные
1 3
1 3 3
3 1 1
2 1
1
1
3 5
3 5 3 4 5
4 1 4 3 1

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

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