Сумма максимумов длительности велопроката

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

Условие

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

Необходимо сгруппировать поездки одновременно по двум ключам: date и start_station. Для каждой группы найти максимальную известную длительность поездки.

Пусть G — множество групп, в которых есть хотя бы одна известная длительность. Для группы g её максимум равен m(g) = max(duration_minutes) по всем строкам группы с числовой длительностью. Требуется вывести значение S = Σ m(g) по всем группам g из G.

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

Формат ввода

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

В следующих n строках через пробел даны три значения: date, start_station, duration_minutes.

date — дата начала поездки в формате YYYY-MM-DD, start_station — номер станции отправления, duration_minutes — целое число минут либо строка NA.

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

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

Дробной части нет, округление не выполняется.

Если максимальная длительность достигается у нескольких поездок одной группы, она всё равно добавляется в сумму ровно один раз. Равенства максимумов между разными группами также не меняют правило: максимум каждой такой группы добавляется отдельно.

Ограничения

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

Куда дальше