Задача №112440. Задача №48
Соревнования по игре «Тетрис-онлайн» проводятся по следующим правилам. Каждый участник регистрируется на сайте игры под определённым игровым именем. Имена участников не повторяются. Чемпионат проводится в течение определённого времени. В любой момент этого времени любой зарегистрированный участник может зайти на сайт чемпионата и начать зачётную игру. По окончании игры её результат (количество набранных очков) фиксируется и заносится в протокол. Участники имеют право играть несколько раз. Количество попыток одного участника не ограничивается. Окончательный результат участника определяется по одной игре, лучшей для данного участника. Более высокое место в соревнованиях занимает участник, показавший лучший результат. При равенстве результатов более высокое место занимает участник, раньше показавший лучший результат. В ходе соревнований заполняется протокол, каждая строка которого описывает одну игру и содержит результат участника и его игровое имя. Протокол формируется в реальном времени по ходу проведения чемпионата, поэтому строки в нём расположены в порядке проведения игр: чем раньше встречается строка в протоколе, тем раньше закончилась соответствующая этой строке игра. Напишите эффективную, в том числе по памяти, программу, которая по данным протокола определяет победителя и призёров. Гарантируется, что в чемпионате участвует не менее трёх игроков.
Первая строка содержит число N- общее количество строк протокола. Каждая из следующих N строк содержит записанные через пробел результат участника (целое неотрицательное число, не превышающее 100 миллионов) и игровое имя (имя не может содержать пробелов). Строки исходных данных соответствуют строкам протокола и расположены в том же порядке, что и в протоколе. Гарантируется, что количество участников соревнований не меньше 3.
Программа должна вывести имена и результаты трёх лучших игроков по форме, приведённой ниже в примере
9 69485 Jack 95715 qwerty 95715 Alex 83647 M 197128 qwerty 95715 Jack 93289 Alex 95715 Alex 95710 M
1 place. qwerty(197128) 2 place. Alex(95715) 3 place. Jack(95715)