SMS Опрос
Популярное телешоу "90%" проводит еженедельное голосование в прямом эфире с помощью SMS. Каждое голосование состоит из вопроса и k вариантов ответа, пронумерованных от 1 до k. Зрителям предлагается проголосовать за один из вариантов, отправив номер от 1 до k на номер программы через SMS. Статистика голосования отображается мгновенно во время программы.
Недавно Парламент выразил подозрения по поводу статистики, транслируемой этим телешоу на прошлой неделе, и нанял комитет для расследования. Комитет получил список всех SMS, отправленных на последний выпуск 90%, и собирается обработать данные для расследования. Голосование, находящееся под расследованием, имеет только четыре варианта.
Поскольку количество SMS довольно велико, комитет просит вас написать компьютерную программу для извлечения статистики голосования из необработанных данных SMS. Данные предоставляются в виде списка пар телефон:содержание, где телефон — это номер телефона отправителя, а содержание — это содержание SMS, предположительно содержащее голос отправителя. Ваша задача — вычислить процент голосов за каждый из вариантов и сообщить его комитету. При обработке данных необходимо учитывать следующие моменты:
В самом общем виде номер телефона имеет форму "A B C", где A — это код страны, B — код региона, а C — местный номер. Например, в +98 (21) 6616-6645 код страны — 98, код региона — 21, а местный номер — 6616-6645. Ни A, ни B, ни C не могут начинаться с цифры 0.
Код страны является необязательным и всегда предшествует знаку +. Если код страны не указан, он считается 98. Код страны состоит не более чем из 3 цифр.
Если код страны указан, номер должен также содержать код региона. Однако, если код страны опущен, код региона является необязательным. Но если код региона указан, он должен предшествовать либо цифре 0, либо быть окружён парой круглых скобок (например, либо 02166166600, либо (21)66166600). Если код региона не указан, он считается 21. Код региона состоит не более чем из 3 цифр.
Местные номера могут иметь различную длину, от 3 до 8 цифр. Примеры: 6616 и 66166600.
Номер телефона может быть записан в различных форматах. Например, 09128122190, +98(912)812-2190 и 0912-812-2190 все относятся к одному и тому же номеру телефона. Вот правила форматирования:
Код региона может быть необязательно окружён парой круглых скобок.
Между любыми двумя цифрами в местном номере или между двумя частями из трёх частей, а именно кодом страны, кодом региона и местным номером, может быть тире (-). Тире и скобка не могут быть рядом.
Вы можете предположить, что все номера телефонов в необработанных данных являются действительными и строго соответствуют указанным выше правилам. Более того, вы можете предположить, что любой номер телефона в мире имеет уникальную полную форму. Например, мы не можем одновременно иметь два разных номера (218)4460 и (21)84460, так как они оба имеют одну и ту же полную форму +982184460.
Единственным допустимым содержанием для SMS является число от 1 до 4 (не окружённое пробелами). Любое другое содержание, такое как буквы и знак +, делает SMS недействительным, и такие SMS должны быть отброшены.
Отправитель мог отправить несколько SMS с одного номера телефона. В этом случае должна быть учтена только первая действительная SMS, а все остальные должны быть отброшены.
Отброшенные SMS не должны включаться в общее количество и в проценты.
Входные данные
Входные данные содержат несколько тестов. Первая строка каждого теста содержит положительное целое число n (1 ≤ n ≤ 10000), которое указывает количество SMS в списке. Следующие n строк содержат пару a:b, где a — это номер телефона, а b — это содержание SMS. Содержание каждого SMS состоит не более чем из 30 символов, где каждый символ является буквенно-цифровым символом или принадлежит множеству {":", "+", "-", "(", ")"}. Ввод заканчивается строкой, содержащей единственный "0", который не должен обрабатываться. Чтобы облегчить вашу задачу, гарантируется, что в каждом тесте есть хотя бы одна действительная SMS.
Выходные данные
Для каждого теста выведите четыре строки в стандартный вывод, где строка i содержит процент голосов, отданных за i-й вариант. Проценты должны быть усечены до целых чисел. Затем выведите общее количество участников голосования, исключая дублирующие SMS. Формат вывода должен соответствовать формату, указанному в стандартном выводе ниже.