Панели с данными за каждый месяц

тема: Связывание таблиц · уровень: продвинутый

Условие

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

Значение выработки -1 означает, что измерение за этот месяц отсутствует или оказалось недоступным. Такая строка не считается записью с данными за месяц. Значение 0 является корректным измерением и считается записью с данными.

Для каждого месяца m от 1 до 12 обозначим через S_m множество идентификаторов панелей, у которых есть хотя бы одна строка с номером месяца m и неотрицательной выработкой. Требуется вывести количество панелей из множества

S_1 ∩ S_2 ∩ ... ∩ S_12.

Иными словами, нужно посчитать панели, для которых найдётся хотя бы одно корректное измерение в каждом из 12 месяцев календарного года. Если подходящих панелей нет, следует вывести 0.

Формат ввода

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

В следующих n строках даны три значения: panel_id, month, energy.

panel_id — идентификатор солнечной панели, month — номер месяца, energy — выработка в киловатт-часах. Значение energy = -1 обозначает пропуск измерения.

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

Выведите одно целое число — количество идентификаторов панелей, имеющих хотя бы одно корректное измерение в каждом месяце от 1 до 12.

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

Ограничения

1 ≤ n ≤ 4000.

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

1 ≤ month ≤ 12.

-1 ≤ energy ≤ 200000.

Строки с одинаковыми panel_id и month разрешены. Пропуски разрешены только в виде значения energy = -1. Количество подходящих панелей может быть равно нулю.

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

Куда дальше