Харитон любит мороженое. К новому сезону производитель мороженого, продукцию которого Харитон особенно любит, выпустил много новых сортов (не забывая, впрочем, о старых и проверенных временем).
Каждому сорту мороженого Харитон назначил свой «рейтинг». Чем больше этот рейтинг, тем более вкусным является мороженое с точки зрения Харитона.
Харитон обычно покупает сразу две порции мороженого. Одну порцию он съедает в день покупки, а другую — в один из следующих дней. Так что в его холодильнике может храниться некоторое количество порций.
Каждый день в киоске, в котором Харитон покупает мороженое, какое-то мороженое назначают «мороженым дня» и продают со скидкой. Поэтому, проходя мимо киоска, Харитон всегда интересуется, какое мороженое можно купить немного дешевле обычного.
Если рейтинг «мороженого дня» не меньше, чем рейтинг самого вкусного мороженого, хранящегося в холодильнике Харитона, он купит две порции этого мороженого, одну съест, а вторую положит в холодильник. Если же рейтинг «мороженого дня» меньше, Харитон не станет его покупать, а съест самое вкусное мороженое из своего холодильника.
Ваша задача — по заданной информации об n днях определить, какое максимальное количество порций мороженого одновременно оказывалось в холодильнике Харитона на протяжении этих n дней, а также какое мороженое Харитон покупал чаще всего.
Входные данные
В первой строке содержится целое число n (1≤n≤3⋅10^5) — количество дней, для которых имеется информация о мороженом.
В каждой из следующих n строк содержится информация о «мороженом дня» в соответствующий день: наименование сорта мороженого sj и (через пробел) его рейтинг rj с точки зрения Харитона (j=1,2,…,n)
Наименование сорта мороженого sj — непустая строка из строчных латинских букв, цифр и нижнего подчёркивания, начинающаяся с буквы и имеющая длину не более 30 символов.
Рейтинг мороженого rj является целым неотрицательным числом, не превосходящим 10^6.
Гарантируется, что рейтинг сорта мороженого не меняется: если некоторое наименование сорта встречается в данных несколько раз, оно всегда имеет один и тот же рейтинг.
Выходные данные
В первой строке выведите целое число m— максимальное количество порций мороженого, которое одновременно оказывалось в холодильнике Харитона.
Во второй строке выведите целые числа v и k — максимальное количество раз, которое Харитон покупал мороженое одного и того же сорта, и количество сортов мороженого, которые Харитон покупал чаще всего.
Далее выведите k строк, в каждой строке содержится по одному наименованию сорта мороженого, которое Харитон покупал чаще всего. Наименования сортов выводите в лексикографическом (алфавитном) порядке.
Примечание
Поясним приведённый пример.
В день #1 Харитон купит две порции клубничного мороженого, одно съест, а второе положит в холодильник. В этот день ему не с чем сравнивать мороженое, так что он купит мороженое с любым рейтингом. А пока запомним, что самое вкусное (и единственное) мороженое в холодильнике Харитона имеет рейтинг 3.
В день #2 Харитон купит две порции ванильного пломбира с рейтингом 5. Одну порцию он съест, а вторая отправится в холодильник. Теперь именно это мороженое будет самым вкусным в холодильнике Харитона. Всего в холодильнике хранится 2 порции мороженого, и пока это максимальный «запас» Харитона.
...
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |