Средняя сумма заказов после замены пропусков

тема: Пропуски, дубликаты, выбросы · уровень: средний

Условие

В журнале заказов службы доставки еды для каждого заказа записана итоговая сумма в рублях. В некоторых строках сумма не была сохранена и обозначена символом -.

Пропуски требуется заменить медианой всех известных сумм заказов в этой колонке. После замены необходимо найти среднее арифметическое сумм всех заказов.

Если известные суммы после сортировки равны x_1, x_2, ..., x_k, то их медиана равна x_((k+1)/2) при нечётном k. При чётном k медиана равна (x_(k/2) + x_(k/2+1)) / 2. Среднее арифметическое очищенной колонки из n значений равно (a_1 + a_2 + ... + a_n) / n.

При равенстве значений заказов их относительный порядок не влияет на результат. Гарантируется, что хотя бы одна сумма известна, поэтому медиана всегда определена.

Формат ввода

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

В следующих n строках содержится сумма одного заказа: целое число рублей или символ -, обозначающий пропуск.

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

Выведите среднее арифметическое сумм после замены всех пропусков медианой известных сумм.

Ответ необходимо вывести ровно с двумя знаками после точки.

Ограничения

1 ≤ n ≤ 2000.

Каждая известная сумма является целым числом от 0 до 100000 рублей.

Длина строки со значением суммы составляет от 1 до 6 символов, длина строки с пропуском равна 1.

Во входных данных есть хотя бы одна известная сумма.

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

Куда дальше