Оборот посылок по городам

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

Условие

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

Операция учитывается только тогда, когда её идентификатор пункта есть в справочнике. Операции с неизвестными пунктами считаются ошибочными записями и не влияют на результат.

Для каждого города из справочника определяется оборот

S(город) = сумма стоимостей всех учитываемых операций пунктов этого города.

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

Формат ввода

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

В следующих n строках заданы идентификатор пункта и имя города: point_id city.

В следующих m строках заданы идентификатор пункта и стоимость операции: point_id amount.

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

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

Ограничения

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

Куда дальше