Средняя ошибка по фолдам теплицы
Условие
В теплице проверяют модель прогноза температуры по схеме из k фолдов. Каждая строка содержит номер фолда, фактическую температуру и прогноз модели. Температуры записаны целыми числами в десятых долях градуса Цельсия.
В некоторых строках прогноз отсутствует и обозначен NA: такие строки не участвуют в вычислении ошибки. Для каждого фолда сначала вычисляется средняя абсолютная ошибка MAE только по строкам с известным прогнозом. Затем требуется найти среднее арифметическое полученных значений MAE по всем фолдам.
Для фолда f с множеством строк S_f, в которых прогноз известен, его ошибка равна MAE_f = (sum(|fact_i - pred_i|) / |S_f|). Ответ равен MAE = (MAE_1 + MAE_2 + ... + MAE_k) / k. Каждый фолд содержит хотя бы одну строку с известным прогнозом, поэтому деления на ноль не возникает. Равенство значений не требует выбора между вариантами и не влияет на ответ.
Формат ввода
В первой строке даны два целых числа n и k — число строк измерений и число фолдов.
В следующих n строках записаны три значения: fold fact pred.
fold — номер фолда, fact — фактическая температура в десятых долях градуса, pred — прогноз в тех же единицах или строка NA.
Формат вывода
Выведите одно число — среднюю MAE по фолдам.
Выведите ровно четыре знака после десятичной точки. Округляйте до ближайшего значения с четырьмя знаками; если отброшенная часть ровно посередине, округляйте в большую сторону.
Ограничения
1 <= n <= 4000.
1 <= k <= n.
1 <= fold <= k.
Каждый номер от 1 до k встречается хотя бы один раз.
-500 <= fact <= 800.
Если pred не равно NA, то -500 <= pred <= 800.
Длина каждого токена во входе не превышает 3 символов.
В каждом фолде есть хотя бы одна строка, у которой pred не равно NA.
Решить задачу с автопроверкой на Python →
Куда дальше
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- На программиста по олимпиаде: путь по классам — что даёт диплом, куда с ним берут на ИТ-направления и почему решает 9 класс
- Вердикты судьи: WA, TLE, RE, PE, CE — что значит каждый код проверяющей системы и где искать причину