Самый тревожный день в теплице

тема: Временные ряды и окна · уровень: средний

Условие

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

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

Для каждого календарного дня d требуется посчитать число тревог. Днём измерения считается первые 10 символов его отметки времени, то есть строка формата YYYY-MM-DD. Тревога возникает, если температура измерения не равна NA и не меньше порога соответствующего датчика. Формально

A(d) = сумма I(temperature >= threshold) по всем измерениям дня d,

где I равно 1, если условие выполняется, и 0 иначе. Требуется вывести дату дня с наибольшим значением A(d).

Если наибольшее число тревог достигается в нескольких днях, выводится лексикографически меньшая дата.

Округление не применяется, так как ответом является дата.

Формат ввода

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

В следующих n строках находятся строки первой таблицы: sensor_id threshold, где sensor_id — идентификатор датчика, а threshold — его порог тревоги.

В следующих m строках находятся строки второй таблицы: timestamp sensor_id temperature, где timestamp имеет формат YYYY-MM-DDThh:mm, а temperature — целое число или строка NA.

Каждый идентификатор датчика из второй таблицы присутствует в первой таблице.

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

Выведите одну дату формата YYYY-MM-DD — день с наибольшим числом тревог.

Ограничения

1 <= n <= 500.

1 <= m <= 1999, n + m <= 2000.

1 <= sensor_id <= 1000000.

-40 <= threshold <= 80.

Если температура не равна NA, то это целое число от -60 до 100.

Длина строки timestamp равна 16, дата и время в ней корректны.

Длина строки NA равна 2.

Гарантируется, что имеется хотя бы одно измерение, вызывающее тревогу.

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

Куда дальше