Частые слова в журналах солнечных панелей
Условие
Сервис солнечной электростанции хранит две таблицы. В первой таблице указан реестр подключённых инверторов, преобразующих энергию солнечных панелей. Во второй таблице находятся текстовые записи техников о проверках оборудования.
Каждая запись журнала содержит идентификатор инвертора. Запись учитывается только тогда, когда такой идентификатор есть в реестре. Записи с неизвестными идентификаторами игнорируются. Если вместо текста записи указан символ -, такая запись считается пропуском и не содержит слов.
Словом считается последовательность строчных латинских букв, отделённая от других слов одним пробелом. Требуется найти k самых частых слов среди всех учитываемых записей журнала. Частота слова равна числу его вхождений в учитываемых текстах. Если несколько слов имеют одинаковую частоту, раньше выводится лексикографически меньшее слово. Гарантируется, что среди учитываемых записей содержится не менее k различных слов.
Округление не применяется: требуется вывести слова в точности в указанном порядке.
Формат ввода
В первой строке записаны три целых числа n, m и k — число строк в реестре инверторов, число записей журнала и требуемое число слов.
В следующих n строках находится первая таблица. Каждая строка содержит идентификатор инвертора и код площадки, разделённые одним пробелом. Идентификаторы инверторов в этой таблице не повторяются.
В следующих m строках находится вторая таблица. Каждая строка содержит идентификатор инвертора, затем пробел, затем текст записи. Текст состоит из слов, разделённых одним пробелом, либо равен символу -.
Формат вывода
Выведите k слов, по одному в строке, в порядке убывания частоты. При равной частоте слова выводятся в лексикографическом порядке.
Ограничения
1 ≤ n, 1 ≤ m, n + m ≤ 1000.
1 ≤ k ≤ 30.
Длина идентификатора инвертора составляет от 2 до 12 символов. Идентификатор не содержит пробелов.
Код площадки имеет длину от 1 до 20 символов и не содержит пробелов.
Текст непустой записи содержит от 1 до 12 слов. Длина каждого слова составляет от 1 до 20 строчных латинских букв.
Длина любой строки входа не превышает 300 символов.
Решить задачу с автопроверкой на Python →
Куда дальше
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- Перечневые олимпиады: что это и что дают — весь перечень Минобрнауки: уровни, срок диплома, разрезы по предметам и классам
- Олимпиада по информатике: с чего начать — два мира олимпиад — ВсОШ и перечневые: этапы, задания и на каком языке писать