Ошибки прогноза посылок
Условие
Пункт выдачи хранит фактическое число посылок и прогноз этого числа для нескольких дней. Для части дней прогноз ещё не был получен. Такой прогноз обозначается числом -1 и не участвует в расчётах.
Для дней с известным прогнозом нужно вычислить две метрики качества: среднюю квадратичную ошибку MSE и среднюю абсолютную ошибку MAE. Если известны фактические значения y_i, прогнозы p_i, а число дней с известным прогнозом равно k, то
MSE = (1 / k) * Σ(y_i - p_i)^2,
MAE = (1 / k) * Σ|y_i - p_i|.
При равенстве фактического и прогнозного значения ошибка этого дня равна нулю. Гарантируется, что хотя бы для одного дня прогноз известен.
Формат ввода
В первой строке дано целое число n — количество дней.
В следующих n строках даны два целых числа: y_i — фактическое число посылок в день и p_i — прогноз. Значение p_i = -1 означает пропуск прогноза.
Формат вывода
Выведите в одной строке два числа: сначала MSE, затем MAE.
Каждое число необходимо вывести ровно с тремя знаками после десятичной точки. Округление выполняется до ближайшего значения, а при ровно половине между двумя значениями — в большую сторону по модулю.
Ограничения
1 ≤ n ≤ 1000.
0 ≤ y_i ≤ 1 000 000.
-1 ≤ p_i ≤ 1 000 000.
Хотя бы одно значение p_i не равно -1.
Решить задачу с автопроверкой на Python →
Куда дальше
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- БВИ и льготы при поступлении — какой диплом что даёт и сколько лет он действует
- Перечневые олимпиады по информатике — олимпиады перечня Минобрнауки, их уровни и что нужно к диплому