Расхождение среднего и медианы результатов

тема: Математика ИИ · уровень: продвинутый

Условие

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

Пусть у школы после удаления пропусков осталось m результатов x_1, x_2, ..., x_m. Среднее время равно mean = (x_1 + x_2 + ... + x_m) / m. Для определения медианы результаты сортируются по неубыванию. Если m нечётно, медиана равна центральному результату. Если m чётно, медиана равна среднему арифметическому двух центральных результатов.

Для каждой школы вычисляется величина D = |mean - median|. Требуется найти школу с наибольшим значением D и вывести это наибольшее значение.

Пропуск результата обозначается символом - и не участвует ни в среднем, ни в медиане. Гарантируется, что у каждой школы, встречающейся во входных данных, есть хотя бы один результат без пропуска. Если наибольшее значение D достигается у нескольких школ, победившей считается школа с лексикографически меньшим названием; на выводимое значение это не влияет.

Формат ввода

В первой строке дано целое число n — число записей о результатах.

В следующих n строках записаны название школы и результат через пробел. Результат является целым числом миллисекунд либо символом -.

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

Выведите наибольшее найденное значение D с ровно шестью знаками после десятичной точки.

Ограничения

1 ≤ n ≤ 4000.

Название школы состоит из строчных латинских букв и цифр, его длина от 1 до 20 символов.

Если результат не является пропуском, то это целое число от 1 до 3600000 миллисекунд.

У каждой школы есть хотя бы один результат без пропуска.

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

Куда дальше