Самый загруженный день выдачи книг
Условие
Библиотека хранит сведения о книгах отдельно от журнала выдач. В файле data.csv каждой книге соответствует жанр, а в файле issues.csv записаны события выдачи книг читателям.
Требуется рассмотреть выдачи книг заданного жанра за указанный период и определить день с наибольшим числом таких выдач. Дата выдачи получается из первых десяти символов значения времени issued_at.
Для каждой даты d из заданного периода вычисляется количество C(d) = число строк issues.csv, для которых дата issued_at равна d и жанр соответствующей книги равен заданному жанру. Нужно вывести дату, для которой значение C(d) максимально. Если наибольшее число выдач достигается в несколько дней, выводится наиболее ранняя дата. Если за период нет ни одной выдачи книг заданного жанра, выводится NONE.
Выводится дата в формате YYYY-MM-DD без округления. Округление чисел не применяется.
Формат ввода
Рядом с программой находятся два CSV-файла в кодировке UTF-8 с разделителем запятая.
Файл data.csv содержит от 300 до 2000 строк с данными о книгах, не считая заголовка. Столбцы файла:
book_id— целочисленный идентификатор книги;title— название книги;genre— жанр книги.
Файл issues.csv содержит от 1 до 2000 строк с событиями выдачи, не считая заголовка. Столбцы файла:
issue_id— целочисленный идентификатор выдачи;book_id— идентификатор книги из файлаdata.csv;issued_at— время выдачи в форматеYYYY-MM-DDTHH:MM;reader_id— целочисленный идентификатор читателя.
В стандартный ввод подаются три строки:
- в первой строке находится жанр;
- во второй строке находится начальная дата периода в формате
YYYY-MM-DD; - в третьей строке находится конечная дата периода в формате
YYYY-MM-DD.
Границы периода включаются в рассмотрение.
Формат вывода
Выведите одну дату в формате YYYY-MM-DD — самый загруженный день выдачи книг заданного жанра. Если подходящих выдач нет, выведите NONE.
Ограничения
- В
data.csvот 300 до 2000 строк данных. - В
issues.csvот 1 до 2000 строк данных. book_idнаходится в диапазоне от 1 до 1000000.issue_idнаходится в диапазоне от 1 до 10000000.reader_idнаходится в диапазоне от 1 до 1000000.- Длина
titleсоставляет от 1 до 80 символов. - Длина
genreсоставляет от 1 до 30 символов. - Все значения
book_idв файлеissues.csvприсутствуют в файлеdata.csv. - Все даты выдачи и границы запроса лежат в 2024 году.
- Начальная дата периода не позже конечной даты.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами