Актуальный район станции велопроката

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

Условие

Городской велопрокат хранит сведения в файле data.csv. Одни строки файла описывают изменения справочника станций, другие — завершённые поездки.

Для каждой станции необходимо выбрать одну актуальную запись справочника. Актуальной считается запись с наиболее поздней датой обновления. Если у одной станции несколько записей с одинаковой наиболее поздней датой, актуальной считается та, которая расположена в файле позже.

По названию района требуется найти сумму длительностей всех поездок, начавшихся на станциях, актуальная запись которых относится к этому району. Поездки со станций, отсутствующих в справочнике, не учитываются. Поездки с пустой длительностью также не учитываются. Искомое значение вычисляется по формуле S = Σ duration_minutes, где суммирование идёт по всем учитываемым поездкам. Если подходящих поездок нет, сумма равна 0.

При равенстве дат обновления для одной станции выбирается запись, встретившаяся позже во входном файле.

Формат ввода

Стандартный ввод содержит одну строку с названием района district_query.

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

record_type,station_id,record_date,district,duration_minutes

Строка с record_type = D является записью справочника: поля station_id, record_date и district заполнены, а duration_minutes пусто.

Строка с record_type = T является поездкой: поля station_id, record_date и duration_minutes могут быть заполнены согласно ограничениям, а поле district пусто. Дата поездки не влияет на выбор актуальной записи справочника.

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

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

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

Ограничения

В файле содержится от 600 до 1100 строк данных, не считая заголовка.

record_type имеет значение D или T. Идентификатор station_id — целое число от 100 до 9004. Дата record_date имеет формат YYYY-MM-DD и лежит в диапазоне от 2025-01-01 до 2025-12-28.

Название района содержит от 1 до 30 символов. Название района во входе содержит от 1 до 30 символов. Длительность duration_minutes для строк поездок либо пуста, либо является целым числом от 1 до 180. Сумма длительностей не превосходит 1000000.

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

Куда дальше