Частые слова в описаниях посылок

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

Условие

В пункте выдачи для некоторых посылок сохраняются короткие текстовые описания: отметки о хрупкости, способе доставки или особенностях упаковки. Иногда описание отсутствует и тогда в строке записан символ -.

Словом называется последовательность строчных латинских букв, отделённая от других слов пробелами. Символ - не является словом и не участвует в подсчёте. Частота слова w определяется формулой f(w) = количество появлений слова w во всех непустых описаниях.

Требуется вывести k слов с наибольшими частотами: сначала слово с большей частотой. При равной частоте слова выводятся в лексикографическом порядке.

Округление не применяется, так как ответ состоит из слов.

Формат ввода

В первой строке записаны два целых числа n и k — количество посылок и количество слов в ответе.

В следующих n строках записаны описания посылок. Каждая строка либо содержит символ -, либо содержит одно или несколько слов, разделённых одним пробелом.

Формат вывода

Выведите k слов, по одному в строке, в требуемом порядке.

Ограничения

1 ≤ n ≤ 1000.

1 ≤ k ≤ 1000.

Длина каждой строки описания составляет от 1 до 200 символов.

Каждое слово состоит из строчных латинских букв и имеет длину от 1 до 20 символов.

В непустом описании содержится от 1 до 40 слов.

Во всех непустых описаниях встречается не менее k различных слов.

Решить задачу с автопроверкой на Python →

Куда дальше