Частые слова в журналах солнечных панелей

тема: Текст: мешок слов и TF-IDF · уровень: базовый

Условие

Сервис солнечной электростанции хранит две таблицы. В первой таблице указан реестр подключённых инверторов, преобразующих энергию солнечных панелей. Во второй таблице находятся текстовые записи техников о проверках оборудования.

Каждая запись журнала содержит идентификатор инвертора. Запись учитывается только тогда, когда такой идентификатор есть в реестре. Записи с неизвестными идентификаторами игнорируются. Если вместо текста записи указан символ -, такая запись считается пропуском и не содержит слов.

Словом считается последовательность строчных латинских букв, отделённая от других слов одним пробелом. Требуется найти 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 →

Куда дальше