Пользователи с отзывами во все месяцы
Условие
В файле data.csv находятся отзывы о мобильном приложении. Один пользователь может оставить несколько отзывов в одном месяце. Поле user_id иногда пропущено: такие строки не относятся ни к одному пользователю и не участвуют в подсчёте.
Для заданного непрерывного интервала месяцев нужно найти число пользователей, оставивших хотя бы один отзыв в каждом месяце интервала. Повторные отзывы одного пользователя в одном месяце не изменяют результат.
Пусть U_m — множество непустых идентификаторов пользователей, оставивших отзыв в месяце m. Для месяцев от a до b включительно требуется вывести значение |U_a ∩ U_(a+1) ∩ ... ∩ U_b|. Если ни один пользователь не подходит, выводится 0.
При равенстве числа отзывов у разных пользователей выбор не производится: все подходящие идентификаторы учитываются по одному разу.
Формат ввода
В первой и единственной строке стандартного ввода записаны два месяца start_month и end_month через пробел в формате YYYY-MM. Интервал включает оба указанных месяца.
Рядом с программой расположен файл data.csv в кодировке UTF-8 с разделителем-запятой. Первая строка файла содержит заголовок. Колонки файла: review_id, user_id, review_month, rating, comment_length.
Формат вывода
Выведите одно целое число — количество пользователей, у которых есть хотя бы один отзыв в каждом месяце заданного интервала.
Дробная часть отсутствует, ответ выводится как целое число.
Ограничения
В файле от 300 до 4000 строк с отзывами, не считая заголовка.
review_id — целое число от 1 до 1000000. user_id — строка длиной от 0 до 20 символов из латинских букв, цифр и дефиса; пустая строка означает пропуск. review_month имеет формат YYYY-MM и лежит в диапазоне от 2026-01 до 2026-12. rating — целое число от 1 до 5. comment_length — целое число от 0 до 5000.
Во входе start_month и end_month лежат в диапазоне от 2026-01 до 2026-12, имеют формат YYYY-MM, причём start_month не позже end_month.
Решить задачу с автопроверкой на Python →
Куда дальше
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- Перечневые олимпиады: что это и что дают — весь перечень Минобрнауки: уровни, срок диплома, разрезы по предметам и классам
- Олимпиада по информатике: с чего начать — два мира олимпиад — ВсОШ и перечневые: этапы, задания и на каком языке писать