Проверка прогноза времени доставки
Условие
Служба доставки проверяет простой прогноз времени доставки. Для каждого района прогноз строится как среднее известное время доставок этого района в обучающей части журнала.
Заказ относится к контрольной части, если его идентификатор делится на 10 без остатка. Остальные заказы относятся к обучающей части. Значение - вместо времени означает, что время доставки не было записано.
Для контрольного заказа с известным временем прогноз равен среднему времени известных обучающих заказов того же района. Если в обучающей части нет ни одного известного заказа этого района, используется среднее время всех известных обучающих заказов. Если во всей обучающей части нет известного времени, используется прогноз 30 минут. Контрольные заказы с - не участвуют в вычислении ошибки. Гарантируется, что хотя бы один контрольный заказ имеет известное время.
Требуется вычислить среднюю абсолютную ошибку, MAE:
\[ MAE = \frac{1}{k}\sum_{i=1}^{k}|y_i-\hat y_i|, \]
где \(y_i\) — известное фактическое время контрольного заказа, \(\hat y_i\) — его прогноз, а \(k\) — число контрольных заказов с известным временем.
Формат ввода
В первой строке дано целое число n — число заказов.
В следующих n строках записаны три значения через пробел: идентификатор заказа order_id, район zone и фактическое время доставки delivery_minutes. Вместо delivery_minutes может стоять символ -.
Формат вывода
Выведите одно число — MAE в минутах.
Округлите значение до трёх знаков после десятичной точки: ближайшее значение выбирается по обычному правилу, а ровно посередине округляется в большую сторону. Нули после точки выводятся обязательно.
Ограничения
1 ≤ n ≤ 2000.1000 ≤ order_id ≤ 999999999, все идентификаторы различны.zoneсостоит из латинских букв, его длина от 3 до 12 символов.delivery_minutes— целое число от 1 до 240 либо символ-.- Хотя бы один контрольный заказ имеет известное время доставки.
- Число контрольных заказов с известным временем не меньше 1.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- Олимпиада по информатике: с чего начать — два мира олимпиад — ВсОШ и перечневые: этапы, задания и на каком языке писать
- На программиста по олимпиаде: путь по классам — что даёт диплом, куда с ним берут на ИТ-направления и почему решает 9 класс