Сравнение прогноза времени пробежки
Условие
В дневнике бегуна для каждой тренировки сохранены фактическое время пробежки и прогноз времени, построенный моделью. Некоторые значения могли не попасть в дневник и обозначены символом -.
В конце входа указан запрос: список спортсменов. Нужно рассматривать только тренировки спортсменов из этого списка. Строки, в которых отсутствует фактическое время или прогноз модели, не участвуют в вычислениях.
Базовый прогноз для всех оставшихся тренировок равен среднему фактическому времени этих тренировок. Для каждого прогноза считается среднеквадратичная ошибка MSE:
MSE = ((y_1 - p_1)^2 + (y_2 - p_2)^2 + ... + (y_k - p_k)^2) / k,
где y_i — фактическое время, p_i — прогноз, а k — количество строк, участвующих в вычислении. Для базового прогноза вместо каждого p_i подставляется среднее фактическое время. Требуется вывести отношение MSE_базовой / MSE_модели: оно показывает, во сколько раз ошибка модели меньше ошибки базового прогноза.
Если значения MSE базового прогноза и модели равны, следует вывести 1.00. Гарантируется, что после удаления строк с пропусками для запроса останется хотя бы одна строка и MSE модели будет строго больше нуля.
Формат ввода
В первой строке дано целое число n — количество записей дневника.
В следующих n строках даны три значения через пробел: имя спортсмена, фактическое время пробежки в секундах и прогноз модели в секундах. Вместо времени или прогноза может стоять символ -.
В следующей строке дано целое число q — количество спортсменов в запросе.
В следующих q строках даны имена спортсменов из запроса. Имена в запросе различны.
Формат вывода
Выведите искомое отношение с двумя знаками после точки.
Округление производится до ближайшего значения с двумя знаками после точки. Если следующее отброшенное значение равно ровно пяти, округление производится в большую сторону.
Ограничения
1 <= n <= 2000.
Длина имени спортсмена составляет от 1 до 20 символов. Имя состоит из строчных латинских букв.
Каждое указанное время и каждый указанный прогноз — целое число от 120 до 50000 включительно.
1 <= q <= 30.
Каждое имя из запроса встречается хотя бы в одной из n строк.
После исключения строк с символом - среди строк спортсменов из запроса остаётся хотя бы одна строка. MSE модели на этих строках строго больше нуля.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- БВИ по олимпиадам: в какие вузы берут — правила приёма вузов, разобранные построчно, со ссылкой на приказ у каждой строки
- Перечневые олимпиады: что это и что дают — весь перечень Минобрнауки: уровни, срок диплома, разрезы по предметам и классам