Победители в форматах шахматного турнира

тема: Комбинаторика для данных · уровень: средний

Условие

В журнале шахматного турнира записаны партии в трёх форматах: блиц, рапид и классика. Один и тот же шахматист может встретиться в журнале много раз, в том числе с несколькими победами в одном формате.

Обозначим через A множество шахматистов, одержавших хотя бы одну победу в блице, через B — множество шахматистов с хотя бы одной победой в рапиде, через C — множество шахматистов с хотя бы одной победой в классике. Запись с неизвестным результатом не добавляет шахматиста ни в одно из множеств.

Требуется найти число различных шахматистов, победивших хотя бы в одном формате. Используйте формулу включения-исключения для трёх множеств:

|A ∪ B ∪ C| = |A| + |B| + |C| − |A ∩ B| − |A ∩ C| − |B ∩ C| + |A ∩ B ∩ C|.

Формат ввода

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

В следующих n строках записаны через пробел три значения: player_id format result.

player_id — идентификатор шахматиста, format — формат партии: B для блица, R для рапида или C для классики. result равен W, если шахматист победил, D, если партия завершилась вничью, L, если шахматист проиграл, или -, если результат отсутствует в журнале.

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

Выведите одно целое число — значение |A ∪ B ∪ C|.

Дробной части в ответе нет, округление не применяется. Правило выбора при равенстве не требуется: выводится единственное число.

Ограничения

1 ≤ n ≤ 2000.

Длина player_id составляет от 1 до 12 символов. Идентификатор состоит из строчных латинских букв, цифр и символа _, причём первый символ — строчная латинская буква.

format — ровно один из символов B, R, C.

result — ровно один из символов W, D, L, -.

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

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

Куда дальше