Пункт выдачи с наибольшим весом посылок

тема: Таблицы: фильтр и группировка · уровень: базовый

Условие

В файле data.csv находятся сведения о посылках в сети пунктов выдачи. Каждая строка описывает одну посылку, её статус, пункт выдачи и заявленный вес.

По запросу рассматриваются посылки указанного статуса, вес которых не меньше заданного порога. Если в запросе указан статус все, рассматриваются посылки любого статуса. Строки с пустым значением веса не учитываются.

Для каждого пункта выдачи вычисляется суммарный вес подходящих посылок: \(S(p)=\sum w_i\), где \(w_i\) — вес подходящей посылки пункта \(p\). Требуется вывести имя пункта с наибольшим значением \(S(p)\). Округление не выполняется, так как выводится имя пункта. Если наибольшая сумма достигается у нескольких пунктов, выводится лексикографически меньшее имя пункта.

Гарантируется, что после применения условий запроса найдётся хотя бы одна посылка с указанным весом, поэтому хотя бы один пункт будет иметь непустую группу.

Формат ввода

Рядом с программой расположен файл data.csv в кодировке UTF-8. Разделитель в файле — запятая, первая строка содержит заголовки. В файле имеются столбцы tracking_id, pickup_point, status, weight_g.

В стандартный ввод подаются две строки:

Посылка подходит, если её статус совпадает с указанным статусом или в запросе указан статус все, а её непустой вес не меньше min_weight.

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

Выведите одно имя пункта выдачи с максимальной суммой весов подходящих посылок.

Ограничения

В файле содержится от 300 до 1000 строк с данными о посылках.

Длина tracking_id составляет от 8 до 20 символов. Длина имени пункта выдачи составляет от 3 до 40 символов. Длина статуса составляет от 5 до 20 символов.

Непустой weight_g является целым числом от 1 до 9000. Значение weight_g может быть пустым. Значение min_weight является целым числом от 0 до 9000.

Гарантируется, что запрос содержит один из допустимых статусов и что среди подходящих посылок есть хотя бы одна строка с непустым весом.

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

Куда дальше