Второе число выдач среди жанров

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

Условие

В файле data.csv хранится каталог книг библиотеки. Каждая книга имеет идентификатор, жанр и год издания. В файле loans.csv хранятся отдельные выдачи книг читателям.

Необходимо соединить выдачи с каталогом по идентификатору книги. Для каждого жанра следует посчитать число выдач книг, год издания которых не меньше заданного значения y.

Пусть для жанра g величина L(g) равна числу строк файла loans.csv, у которых идентификатор книги относится к жанру g, а год издания этой книги не меньше y. Требуется вывести второе по величине различное значение среди величин L(g).

Пустые жанры и жанры, для которых L(g) = 0, в сравнении не участвуют. Гарантируется, что после отбора есть хотя бы два жанра с положительным числом выдач. При равенстве значений выдач у нескольких жанров они считаются одним и тем же значением при поиске второго по величине различного значения.

Формат ввода

Рядом с программой находятся два файла в кодировке UTF-8 с разделителем-запятой.

Файл data.csv содержит каталог книг. Первая строка содержит заголовок: book_id,title,genre,publication_year

Файл loans.csv содержит выдачи. Первая строка содержит заголовок: loan_id,book_id,reader_id,loan_date

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

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

Выведите одно целое число — второе по величине различное положительное число выдач среди жанров.

Ограничения

В файле data.csv ровно 360 строк с данными. Идентификаторы book_id находятся в диапазоне от 1 до 1000000 и не повторяются. Длина title — от 1 до 60 символов. Длина genre — от 3 до 30 символов. Год издания publication_year находится в диапазоне от 1900 до 2025.

В файле loans.csv ровно 1260 строк с данными. Идентификаторы loan_id находятся в диапазоне от 1 до 10000000 и не повторяются. Каждый book_id из файла loans.csv существует в файле data.csv. Идентификатор читателя reader_id находится в диапазоне от 1 до 1000000. Дата имеет формат YYYY-MM-DD.

Число y находится в диапазоне от 1950 до 2000. После применения условия по году существуют хотя бы два жанра с положительным числом выдач.

Округление не требуется: выводится целое число без дробной части.

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

Куда дальше