Trosver
Дизайн и Анализ на Алгоритми, 2011
Time Limit: 0.1s, Memory Limit: 64MiB
Ели, Крис и Станчо играят следната (безмислена) игра, наречена Trosver. В началото всеки от тях има по един празен лист хартия. Станчо записва N цели числа A1, A2, ..., AN на своя лист и го дава на Ели. Тя брои колко от числата на Станчо са по-големи или равни на 1 и ако това число не е нула записва бройката им на своя лист. После брои колко са по-големи или равни на 2 и ако това число не е нула записва и него на своя лист. После пробва с 3, 4, 5... Така тя продължава до безкрайност. Добре де, не съвсем. Тя оптимизира безкрайния цикъл, като забелязва, че никога няма да запише на своя лист число, което е по-голямо от най-голямото число на Станчо. След това тя дава листа си на Крис, която прилага същата процедура, само че върху числата на Ели вместо върху тези на Станчо.

Напишете програма, която по дадени числата на Станчо връща какво би написала на своя лист Крис.
Вход
На първия ред на стандартния вход ще бъде зададен броят на числата N, които Станчо е записал. На следващия ред ще бъдат дадени N цели числа A1, A2, ..., AN, разделени с интервали – самите числа.
Изход
На стандартния изход изведете N цели числа, разделени с интервали – числата, които ще има на листа на Крис (в реда, в който тя ги е записала).
Ограничения
  • 1 ≤ N ≤ 100,000
  • 1 ≤ Ai ≤ 1,000,000
Примерен Вход Примерен Изход
3 5 2 7 7 5 2
В дадения пример числата на Станчо са {5, 2, 7}. Ели, съответно, записва числата {3, 3, 2, 2, 2, 1, 1} (тъй като три числа са по-големи или равни на 1, три числа са по-големи или равни на 2, две числа са по-големи или равни на 3 и т.н.). Накрая Крис записва {7, 5, 2}, тъй като седем от числата на Ели са по-големи или равни на 1, пет числа са по-големи или равни на 2 и две числа са по-големи или равни на 3.
Мрън!