Проверка среднего времени посещения
Условие
В логе школьного сайта каждая строка описывает одно посещение раздела. Поле duration_s содержит длительность посещения в секундах. Значение - означает, что длительность не была записана.
Рассматривается простая модель: она игнорирует раздел сайта и предсказывает длительность следующего корректного посещения средним значением длительностей в обучающих строках. Качество модели требуется оценить методом leave-one-out: для каждой строки с известной длительностью строка временно исключается, модель обучается на остальных строках с известной длительностью, затем вычисляется ошибка на исключённой строке.
Пусть известно m длительностей x_1, x_2, ..., x_m. Для строки i прогноз равен p_i = (sum(x_j) - x_i) / (m - 1) при m > 1. Если m = 1, после исключения строки обучающих наблюдений нет, поэтому по соглашению p_1 = 0. Требуется вывести среднеквадратичную ошибку leave-one-out: MSE = (1 / m) * sum((x_i - p_i)^2). Строки с duration_s = - полностью пропускаются и не участвуют ни в обучении, ни в вычислении ошибки. Равенства чисел не требуют выбора и не изменяют ответ.
Формат ввода
В первой строке дано целое число n — число строк лога.
В следующих n строках содержатся три поля через пробел: session_id, section, duration_s.
Поле duration_s равно целому числу секунд либо символу -.
Формат вывода
Выведите одно число — значение MSE с ровно четырьмя знаками после десятичной точки.
Округление выполняется до ближайшего значения с четырьмя знаками после точки; при ровно половинном случае выбирается большее по модулю значение.
Ограничения
1 <= n <= 4000.
Длина session_id составляет от 1 до 20 символов и содержит только латинские буквы, цифры, символы _ и -.
Длина section составляет от 1 до 12 символов и содержит только строчные латинские буквы и символ _.
Если длительность известна, то 0 <= duration_s <= 86400.
Во входе есть хотя бы одна строка с известной длительностью.
Пропущенные длительности обозначаются ровно одним символом -.
Решить задачу с автопроверкой на Python →
Куда дальше
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- Вердикты судьи: WA, TLE, RE, PE, CE — что значит каждый код проверяющей системы и где искать причину
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт