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

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

Условие

В файле data.csv приведены сведения о посылках, поступивших в несколько пунктов выдачи. В некоторых строках объявленная ценность посылки неизвестна и записана как пустое поле.

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

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

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

Формат ввода

Рядом с программой находится файл data.csv в кодировке UTF-8. Разделитель полей — запятая, первая строка содержит заголовок:

parcel_id,pickup_point,weight_kg,declared_value_rub

Поле parcel_id содержит идентификатор посылки, pickup_point — название пункта выдачи, weight_kg — целый вес посылки в килограммах, declared_value_rub — целую объявленную ценность в рублях или пустое значение.

В стандартном вводе дана одна строка с целым числом min_weight — минимальным учитываемым весом посылки в килограммах.

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

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

Ограничения

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

Длина parcel_id составляет от 8 до 20 символов. Длина названия пункта выдачи составляет от 5 до 30 символов.

weight_kg — целое число от 1 до 30.

declared_value_rub — целое число от 100 до 10000 либо пустое значение.

min_weight — целое число от 1 до 30.

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

Куда дальше