Корректные даты кормления

тема: Пропуски, дубликаты, выбросы · уровень: средний

Условие

В зоопарке ведётся журнал кормления животных. Каждая строка журнала содержит имя животного, вольер и дату кормления. Часть дат была введена с ошибками, а вместо неизвестной даты может стоять символ -.

Корректной считается дата вида DD.MM.YYYY, где день, месяц и год записаны ровно двумя, двумя и четырьмя цифрами соответственно. Год должен быть от 2020 до 2030 включительно, а день должен существовать в указанном месяце по правилам григорианского календаря. Год является високосным, если он делится на 400 или делится на 4 и не делится на 100.

В конце входа задан запрос: несколько названий вольеров. Требуется посчитать количество строк журнала, у которых вольер указан в запросе и дата кормления корректна. Каждая строка учитывается отдельно.

Если две или несколько строк полностью совпадают, каждая из них всё равно учитывается отдельно.

Формат ввода

В первой строке дано целое число n — количество строк журнала.

В следующих n строках записаны через пробел три значения: animal, enclosure, date — имя животного, название вольера и строка с датой кормления.

В следующей строке дано целое число q — количество вольеров в запросе.

В следующих q строках записаны названия вольеров из запроса. Все названия вольеров в запросе различны.

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

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

Ограничения

1 ≤ n ≤ 2000.

1 ≤ q ≤ 20.

Длина animal — от 1 до 20 символов латинского алфавита в нижнем регистре.

Длина enclosure и каждого названия в запросе — от 1 до 20 символов латинского алфавита в нижнем регистре.

Длина date — от 1 до 12 символов. Строка даты не содержит пробелов.

В строках журнала могут встречаться повторяющиеся животные, повторяющиеся записи, некорректные даты и символ - вместо даты.

Вольер из запроса может не встречаться ни в одной строке журнала. В этом случае он добавляет к ответу 0.

Ответ является целым числом. Дробная часть отсутствует и округление не применяется.

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

Куда дальше