Словарь тренировочного дневника
Условие
Бегун записывает краткие текстовые заметки о тренировках. Каждая заметка состоит из слов, разделённых одним пробелом. Одинаковыми считаются слова с одинаковым написанием.
Для каждого слова w определяется его частота f(w): число появлений слова w во всех заметках дневника. После отсечения с порогом t в словаре остаются только слова, для которых f(w) >= t.
Для каждого значения порога из запроса требуется вычислить размер словаря V(t) = |{w : f(w) >= t}|. Если ни одно слово не достигает порога, размер словаря равен 0. При равенстве частот слова рассматриваются независимо: каждое слово остаётся в словаре, если его частота не меньше порога.
Формат ввода
В первой строке даны два целых числа n и q: количество заметок и количество порогов в запросе.
В следующих n строках записаны заметки тренировочного дневника.
В последней строке записаны q целых чисел t1, t2, ..., tq: пороги отсечения для запроса.
Формат вывода
Выведите q целых чисел, по одному в строке. i-е число равно размеру словаря V(ti) для i-го порога запроса.
Выведите целые числа, дробной части в ответе нет.
Ограничения
1 <= n <= 1000.
1 <= q <= 20.
Каждая заметка содержит от 1 до 20 слов.
Каждое слово состоит из строчных латинских букв, длина слова от 1 до 20 символов.
1 <= ti <= 20000 для каждого порога ti.
Решить задачу с автопроверкой на Python →
Куда дальше
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- Родителям: подготовка бесплатно — сколько стоит репетитор, что даёт бесплатный маршрут и как понять, что ребёнок занимается
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели