Школьная индивидуальная олимпиада #1 (ЗКШ 2010/11) - Codeforces Beta Round 38 (ACM-ICPC Rules) |
---|
Закончено |
В зимний холодный вечер наш герой Вася стоял в очереди на вокзале за билетом на финал чемпионата Codeforces. Как обычно это бывает, кассир, сказав, что он отлучится на 5 минут, ушел на целый час... Тогда Вася, чтобы не скучать в это время, стал изучать такой механизм, как очередь. Наблюдения потрясли Васю.
Каждый человек характеризуется числами ai — важностью его дел (чем это число больше, тем важнее его дело), и числом ci — характеристика его совести. Числа ai образуют перестановку чисел от 1 до n.
Пусть на данный момент очередь состоит из n - 1 людей. Рассмотрим, как ведет себя пришедший номер n. Первым делом он встает в конец текущей очереди, а дальше поступает следующим образом: если у человека, который стоит перед ним важность дел ai меньше чем an, то они меняются местами (выглядит это так: человек номер n спрашивает у предыдущего: «Эээ... простите, пожалуйста, у меня очень важное дело... можете меня пропустить вперед?»), затем он опять спрашивает у впереди стоящего человека, и так далее. Если же ai больше чем an, то продвижение вперед заканчивается. Но такую операцию обмена человек номер n может совершить не более, чем cn раз.
В нашей задаче будем считать, что к моменту, когда человек номер n придет в очередь, процесс обменов в очереди из n - 1 людей уже закончится. Если обмен возможен, то он обязательно происходит.
Ваша задача — помочь Васе промоделировать описанный процесс и найти, в каком порядке пришедшие люди будут располагаться в очереди после окончания всех обменов.
В первой строке входных данных находится целое число n — количество людей, пришедших в данную очередь (1 ≤ n ≤ 105). Далее в n строках заданы описания людей в порядке их прихода — целые числа ai и ci (1 ≤ ai ≤ n, 0 ≤ ci ≤ n), записанные через пробел. Каждое описание находится на отдельной строке. Все ai различны.
Выведите перестановку чисел от 1 до n, означающую образованную по описанным правилам очередь в порядке от начала к концу. В этой последовательности i-ое число означает номер человека, который будет стоять в очереди на месте номер i после завершения процесса обменов. Люди нумеруются с 1 в порядке, в котором они заданы во входных данных. Числа разделяйте пробелом.
2
1 0
2 1
2 1
3
1 3
2 3
3 3
3 2 1
5
2 3
1 4
4 3
3 1
5 2
3 1 5 4 2
Название |
---|