Максимальные поездки по району и типу велосипеда
Условие
В файле data.csv хранятся сведения о станциях городского велопроката. Каждая станция относится к району города и обслуживает один тип велосипеда.
В файле trips.csv записаны поездки. Каждая поездка ссылается на станцию старта по её идентификатору. Для некоторых поездок длительность неизвестна и записана как пустое поле.
По заданным дате и порогу длительности необходимо соединить поездки со станциями по полю station_id. Затем для каждой пары (district, bike_type) среди поездок указанной даты найти максимальную известную длительность. Требуется вывести число пар, у которых найденный максимум не меньше заданного порога.
Пустые значения duration_minutes не участвуют в поиске максимума. Пары, у которых после исключения пустых значений не осталось поездок, не учитываются. Если максимальная длительность в одной паре достигается у нескольких поездок, все они считаются одинаково подходящими, а результат для этой пары не меняется.
Формат ввода
Рядом с программой находятся два CSV-файла в кодировке UTF-8 с разделителем-запятой.
Файл data.csv содержит от 300 до 2000 строк без учёта заголовка. Его столбцы: station_id — целочисленный идентификатор станции, district — название района, bike_type — тип велосипеда.
Файл trips.csv содержит от 300 до 2000 строк без учёта заголовка. Его столбцы: trip_id — целочисленный идентификатор поездки, station_id — идентификатор станции старта из файла data.csv, trip_date — дата в формате YYYY-MM-DD, duration_minutes — целая длительность поездки в минутах или пустое значение.
В единственной строке stdin записаны через пробел дата query_date в формате YYYY-MM-DD и целый порог threshold.
Формат вывода
Выведите одно целое число — количество пар (district, bike_type), для которых максимальная известная длительность поездки в дату query_date не меньше threshold.
Дробной части в ответе нет, выводится целое число.
Ограничения
Количество строк в каждом из файлов: от 300 до 2000.
station_id: от 1 до 1 000 000.
trip_id: от 1 до 10 000 000.
Длина названия района district: от 3 до 30 символов.
Длина типа велосипеда bike_type: от 3 до 20 символов.
duration_minutes, если значение не пустое: целое число от 1 до 240.
Дата поездки и query_date лежат в диапазоне от 2026-05-01 до 2026-05-10.
threshold: целое число от 1 до 300.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- Олимпиада по информатике: с чего начать — два мира олимпиад — ВсОШ и перечневые: этапы, задания и на каком языке писать
- На программиста по олимпиаде: путь по классам — что даёт диплом, куда с ним берут на ИТ-направления и почему решает 9 класс