Самая частая путаница погодных классов

тема: Метрики классификации · уровень: продвинутый

Условие

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

Допустимые коды классов: CLR — ясно, FOG — туман, RAIN — дождь, SNOW — снег, STORM — гроза. Значение NA в одном из двух столбцов классов означает, что соответствующая метка неизвестна.

Для каждой упорядоченной пары различных классов (a, p) определяется элемент многоклассовой матрицы ошибок: C(a, p) — число строк, в которых фактический класс равен a, а предсказанный класс равен p. Строки, где фактический или предсказанный класс равен NA, не учитываются. Требуется вывести пару различных классов a p, для которой значение C(a, p) максимально. Правильные предсказания, у которых a = p, не рассматриваются.

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

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

Формат ввода

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

В следующих n строках записаны четыре значения: целая температура temperature, целая относительная влажность humidity, код фактического класса actual и код предсказанного класса predicted.

Значение температуры и влажности -999 означает пропуск измерения датчика. Такие пропуски не влияют на подсчёт матрицы ошибок.

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

Выведите два кода классов a p через пробел — фактический и предсказанный классы самой частой путаницы.

Ограничения

1 ≤ n ≤ 4000.

-80 ≤ temperature ≤ 60 или temperature = -999.

0 ≤ humidity ≤ 100 или humidity = -999.

Каждый из кодов actual и predicted имеет длину от 2 до 5 символов и принадлежит множеству CLR, FOG, RAIN, SNOW, STORM, NA.

Гарантируется, что существует хотя бы одна строка с известными различными кодами actual и predicted.

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

Куда дальше