Самая загруженная категория парковки

тема: Связывание таблиц · уровень: средний

Условие

Торговый центр ведёт справочник парковочных тарифов. Каждому коду тарифа сопоставлена категория: например, standard, vip или staff.

После завершения каждого посещения парковки в журнал заносится код тарифа и длительность стоянки в минутах. В журнале могут встретиться коды, которых нет в справочнике: такие записи считаются устаревшими и не учитываются.

В конце входа указан запрос из нескольких категорий. Для каждой запрошенной категории c вычисляется суммарная длительность стоянок

S(c) = сумма duration всех записей журнала, для которых категория кода тарифа в справочнике равна c.

Требуется вывести категорию из запроса с наибольшим значением S(c). Если наибольшее значение достигается у нескольких категорий, выведите лексикографически меньшее имя категории. Если для запрошенной категории нет подходящих записей, её суммарная длительность равна нулю. Округление не применяется, так как выводится имя категории.

Формат ввода

В первой строке записаны три целых числа m, n, q — количество строк справочника тарифов, количество записей журнала и количество категорий в запросе.

В следующих m строках записаны два значения: код тарифа tariff_code и имя его категории category.

В следующих n строках записаны два значения: код тарифа tariff_code и целое число duration — длительность завершённой стоянки в минутах.

В следующих q строках записаны имена категорий, входящих в запрос.

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

Выведите одно имя категории из запроса с наибольшей суммарной длительностью стоянок.

Ограничения

1 ≤ m, n, q.

m + n + q ≤ 2000.

Код тарифа имеет длину от 1 до 16 символов и состоит из строчных латинских букв, цифр и символа _. Коды тарифов в справочнике не повторяются.

Имя категории имеет длину от 1 до 16 символов и состоит из строчных латинских букв, цифр и символа _. Имена категорий в запросе не повторяются.

0 ≤ duration ≤ 1000000.

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

Куда дальше