Самый долгий день велопроката

тема: Временные ряды и окна · уровень: продвинутый

Условие

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

Строки двух таблиц сопоставляются по одинаковому идентификатору поездки. Значение длительности -1 означает, что поездка ещё не завершена или её длительность не передана. Такие строки не учитываются.

Для каждого дня недели, в котором есть хотя бы одна сопоставленная поездка с известной длительностью, требуется найти среднюю длительность поездки. Средняя длительность для дня недели равна арифметическому среднему: S / k, где S — сумма длительностей подходящих поездок этого дня, а k — их количество. Требуется вывести день с наибольшей средней длительностью.

Если наибольшая средняя длительность достигается у нескольких дней, выводится тот, который раньше расположен в порядке: Понедельник, Вторник, Среда, Четверг, Пятница, Суббота, Воскресенье. Округление не применяется, так как выводится название дня недели.

Формат ввода

В первой строке даны два целых числа n и m — количество строк в таблице начала поездок и количество строк в таблице завершения поездок.

В следующих n строках даны идентификатор поездки trip_id и название дня недели weekday, разделённые пробелом.

В следующих m строках даны идентификатор поездки trip_id и длительность поездки minutes в минутах, разделённые пробелом. Значение minutes = -1 обозначает неизвестную длительность.

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

Выведите одно название дня недели с наибольшей средней длительностью сопоставленных завершённых поездок.

Ограничения

1 ≤ n, m ≤ 4000.

2 ≤ n + m ≤ 4000.

1 ≤ trip_id ≤ 10^9.

Идентификаторы поездок внутри каждой из двух таблиц не повторяются.

weekday имеет длину от 5 до 11 символов и является одним из значений: Понедельник, Вторник, Среда, Четверг, Пятница, Суббота, Воскресенье.

minutes = -1 или 1 ≤ minutes ≤ 1440.

Хотя бы для одной поездки существует строка в обеих таблицах, а её длительность не равна -1. Дни недели без подходящих поездок не участвуют в сравнении.

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

Куда дальше