Три класса с наибольшим временем посещений
Условие
В файле data.csv записаны сведения об учениках школьного сайта. Каждый ученик относится к одному классу.
В файле visits.csv записан журнал посещений. Время одного посещения может быть неизвестно: в этом случае соответствующее поле пустое.
Для указанной даты и порога нужно найти три класса с наибольшим суммарным временем подходящих посещений. Подходящим считается посещение, дата которого равна указанной дате, а известная длительность не меньше порога.
Суммарное время класса равно сумме значений duration_sec всех его подходящих посещений. Посещения с пустым значением duration_sec игнорируются. Если у класса нет подходящих посещений, его суммарное время считается равным нулю. Округление не применяется, так как выводятся названия классов.
При равенстве суммарного времени классы располагаются в лексикографическом порядке их названий.
Формат ввода
Рядом с программой находятся два файла в кодировке UTF-8 с разделителем-запятой.
Файл data.csv содержит от 300 до 2000 строк данных и заголовок:
student_id,class_name
student_id — целочисленный идентификатор ученика. class_name — название класса.
Файл visits.csv содержит от 300 до 2000 строк данных и заголовок:
visit_id,student_id,visit_date,duration_sec
visit_id — целочисленный идентификатор посещения. student_id ссылается на идентификатор из data.csv. visit_date имеет формат ГГГГ-ММ-ДД. duration_sec — целое число секунд либо пустая строка.
В стандартный ввод подаются две строки. В первой строке записана дата visit_date в формате ГГГГ-ММ-ДД. Во второй строке записан целый порог p.
Формат вывода
Выведите через один пробел названия трёх классов с наибольшим суммарным временем подходящих посещений в порядке убывания суммарного времени. При равных суммах названия должны идти в лексикографическом порядке.
Ограничения
Количество строк данных в каждом из файлов: от 300 до 2000.
student_id: от 1 до 2000. Все идентификаторы учеников в data.csv различны.
visit_id: от 1 до 2000. Все идентификаторы посещений в visits.csv различны.
Количество различных классов: от 6 до 20. Длина class_name: от 2 до 10 символов из латинских букв и цифр.
Дата во входе и значения visit_date в файле лежат в диапазоне от 2025-09-01 до 2025-09-30.
duration_sec, если значение не пустое: от 1 до 3600.
Порог p: от 0 до 3600.
В файле data.csv есть не менее трёх классов.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- Родителям: подготовка бесплатно — сколько стоит репетитор, что даёт бесплатный маршрут и как понять, что ребёнок занимается