Очистка отчётов шахматного турнира

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

Условие

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

Очистка проводится по ключу game_id: для каждого кода партии сохраняется только первая строка с этим кодом во входных данных, а все следующие строки с тем же кодом удаляются. Первая строка определяется её положением во входе.

После очистки требуется узнать, сколько сохранённых отчётов относится к турам, перечисленным в запросе. Отчёт относится к туру из запроса, если его номер тура равен одному из указанных номеров.

При равенстве ключей game_id сохраняется запись, встретившаяся раньше во входных данных. Если после очистки нет ни одного отчёта для туров из запроса, необходимо вывести 0.

Формат ввода

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

В следующих n строках даны пять значений: game_id, round, white, black, result.

game_id — код партии, round — номер тура, white и black — имена игроков, result — результат партии.

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

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

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

Выведите одно целое число — количество отчётов, оставшихся после очистки и относящихся к турам из запроса.

Выведите целое число без дробной части.

Ограничения

1 ≤ n ≤ 1000.

1 ≤ round ≤ 100.

1 ≤ q ≤ 100.

Все номера туров в запросе различны и лежат в диапазоне от 1 до 100.

game_id состоит из латинских букв, цифр и символа _, его длина от 1 до 20.

Имена white и black состоят из латинских букв, их длина от 1 до 20.

result является одной из строк: 1-0, 0-1, 1/2-1/2.

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

Куда дальше