Счётчики с признаками перегрузки

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

Условие

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

Для проверки перегрузок используются три множества квартир. В множество A входят квартиры, у которых дневное показание известно и не меньше порога x. В множество B входят квартиры, у которых ночное показание известно и не меньше порога y. В множество C входят квартиры, у которых показание за выходные известно и не меньше порога z.

Требуется определить число квартир из объединения A ∪ B ∪ C. Следует использовать формулу включения-исключения:

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

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

Формат ввода

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

В следующих n строках записаны три значения: дневное показание day_kwh, ночное показание night_kwh и показание за выходные weekend_kwh. Каждое значение является целым числом или строкой NA.

В последней строке записаны три целых числа x, y, z — пороги для дневного, ночного и выходного периодов соответственно. Это ЗАПРОС, для которого требуется найти ответ.

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

Выведите одно целое число — количество квартир из множества A ∪ B ∪ C для заданного запроса.

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

Ограничения

1 ≤ n ≤ 2000.

Каждое известное показание находится в диапазоне от 0 до 10^9 киловатт-часов включительно.

Каждый порог x, y, z находится в диапазоне от 0 до 10^9 включительно.

Длина каждого обозначения пропуска равна 2 и равна NA.

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

Куда дальше