Задача
На электронную почту пришло письмо, подписанное аббревиатурой (первыми буквами фамилии, имени и отчества (далее - ФИО) отправителя). Аббревиатура оказалась незнакома. Есть список всех предполагаемых отправителей, взятый из ранее полученных писем, среди которых различных людей с такой аббревиатурой не больше 10.
Предлагается написать эффективную, в том числе по используемой памяти, программу, которая определит всех вероятных адресатов – людей, ФИО которых можно сократить до нужной аббревиатуры. ФИО следует выдать в порядке убывания частоты их встречаемости в списке.
На вход программе в первой строке подается аббревиатура (строка, состоящая из трех заглавных латинских букв). Во второй строке находится число N
– количество ФИО, полученных в результате анализа почты, не все из них подходят под указанную аббревиатуру. Значение N
может быть очень велико. В каждой из следующих N
строк записано три слова: фамилия, имя, отчество соответствующего человека. Слова разделяются одним пробелом. В конце и в начале строки пробелов нет. Все слова записаны заглавными латинскими буквами. Длина ФИО не превышает 100 символов. Гарантируется, что, хотя бы один человек с нужной аббревиатурой есть.
Пример входных данных
IPI
4
IVANOV PETR IVANOVICH
PETROV IVAN IVANOVICH
IVANOV PETR IVANOVICH
ILYIN PETR ILYICH
Программа должна вывести предполагаемых отправителей письма с указанием частоты их встречаемости в списке (в порядке убывания частоты).
Пример выходных данных для приведенного выше примера входных данных
IVANOV PETR IVANOVICH 2
ILYIN PETR ILYICH 1