Частая биграмма названий страниц
Условие
В журнале посещений школьного сайта для каждого посещения указан код открытой страницы. Отдельная таблица содержит названия страниц по их кодам.
Для каждого посещения, код страницы которого есть в каталоге, рассматривается название этой страницы. Если название состоит из слов w1 w2 ... wk, его биграммами называются пары соседних слов (w1, w2), (w2, w3), ..., (w(k-1), wk). Название из одного слова не даёт ни одной биграммы. Посещения с кодом, отсутствующим в каталоге, пропускаются.
Частотой биграммы (a, b) называется число её появлений среди биграмм всех рассмотренных посещений: C(a, b) = сумма по всем посещениям числа позиций i, для которых wi = a и w(i+1) = b. Одинаковые посещения и повторные открытия одной страницы учитываются отдельно. Требуется вывести биграмму с наибольшей частотой.
Если наибольшая частота достигается у нескольких биграмм, выводится лексикографически меньшая биграмма: сначала сравниваются первые слова, а при их равенстве — вторые. Округление не применяется, в ответе выводятся ровно два слова через один пробел.
Формат ввода
В первой строке записаны два целых числа n и m — число строк журнала посещений и число строк каталога страниц.
В следующих n строках записаны идентификатор посещения и код страницы через один пробел: visit_id page_code.
В следующих m строках записаны код страницы, затем один пробел и её название: page_code title. Название состоит из слов, разделённых одним пробелом.
Формат вывода
В единственной строке выводятся два слова наиболее частой биграммы через один пробел.
Ограничения
1 ≤ n, 1 ≤ m, n + m ≤ 2000.
Длина visit_id и page_code составляет от 1 до 12 символов. Идентификаторы посещений различны. Коды страниц в каталоге различны.
Название страницы содержит от 1 до 10 слов. Каждое слово содержит от 1 до 20 строчных латинских букв. Длина всей строки названия не превышает 209 символов.
Хотя бы одно посещение ссылается на страницу из каталога, название которой содержит не менее двух слов.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- Родителям: подготовка бесплатно — сколько стоит репетитор, что даёт бесплатный маршрут и как понять, что ребёнок занимается