Уникальные метки панелей по запросу

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

Условие

На солнечных электростанциях инвентарные метки панелей вводятся вручную. Одна и та же метка может быть записана разным регистром и с лишними пробелами по краям.

Нормализованной меткой называется строка, полученная удалением пробелов в начале и конце строки и переводом английских букв в нижний регистр. Например, строки PN-17, pn-17 и Pn-17 после нормализации совпадают.

Дан список записей о панелях и список названий электростанций в запросе. Требуется найти число различных нормализованных меток панелей на всех электростанциях из запроса. Запись с меткой - после нормализации означает пропуск метки и не учитывается. Искомое значение равно мощности множества { p : существует запись (s, p), s принадлежит Q, p не равно "-" }, где Q — множество нормализованных названий электростанций из запроса.

При совпадении нормализованных меток панелей они учитываются как одна уникальная метка. Если ни одна запись не относится к электростанциям из запроса или все найденные метки пропущены, ответ равен 0.

Формат ввода

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

В следующих n строках записаны данные в формате название_электростанции;метка_панели. Символ ; является разделителем и не входит в названия или метки.

В следующих q строках записаны названия электростанций из запроса, по одному в строке.

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

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

Дробной части в ответе нет: выведите целое число без округления.

Ограничения

1 ≤ n ≤ 1000.

1 ≤ q ≤ 1000.

Длина каждой строки названия электростанции и каждой непустой метки, включая пробелы по краям, составляет от 1 до 30 символов.

Названия и метки состоят из английских букв, цифр, дефисов и пробелов. После удаления пробелов по краям название электростанции и любая непустая метка содержат хотя бы один символ.

Метка с пропуском имеет вид -, возможно с пробелами по краям.

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

Куда дальше