Корректные даты выдачи книг
Условие
В каталоге библиотеки каждая строка описывает выдачу книги. В части записей дата выдачи была введена с ошибкой или пропущена.
Корректной считается дата в точном формате YYYY-MM-DD, где YYYY, MM и DD состоят из цифр, год находится от 1900 до 2100 включительно, месяц находится от 1 до 12, а день существует в этом месяце. Февраль содержит 29 дней в високосный год. Год является високосным, если он кратен 400 или кратен 4, но не кратен 100.
Требуется отбросить все строки с некорректной датой выдачи и посчитать число оставшихся строк. Формально требуется вывести S = sum(I_i), где I_i = 1, если дата в строке i корректна, и I_i = 0 иначе. Повторяющиеся строки не удаляются: каждая строка учитывается отдельно. При совпадении любых значений в нескольких строках эти строки всё равно считаются разными записями.
Формат ввода
В первой строке дано целое число n — число записей о выдачах.
В следующих n строках даны идентификатор книги book_id и строка issue_date, разделённые пробелом. Значение issue_date равно -, если дата пропущена.
Формат вывода
Выведите одно целое число — количество строк с корректной датой выдачи.
Дробная часть отсутствует, ответ выводится как целое число.
Ограничения
1 ≤ n ≤ 2000.
Длина book_id составляет от 1 до 20 символов. Идентификатор состоит из строчных латинских букв, цифр и символа _.
Длина issue_date составляет от 1 до 10 символов. Строка даты состоит из цифр и символа -.
Год, если он записан четырьмя цифрами, может иметь значение от 0000 до 9999. Месяц и день, если они записаны цифрами, могут иметь значения от 00 до 99.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- На программиста по олимпиаде: путь по классам — что даёт диплом, куда с ним берут на ИТ-направления и почему решает 9 класс
- Вердикты судьи: WA, TLE, RE, PE, CE — что значит каждый код проверяющей системы и где искать причину