Сравнение прогнозов длительности велопоездок
Условие
Городской велопрокат хранит сведения о завершённых поездках и прогнозы их длительности в двух отдельных таблицах. Строки таблиц могут находиться в разном порядке, поэтому поездки сопоставляются по идентификатору trip_id.
Во второй таблице прогноз может отсутствовать для части поездок. В расчёт включаются только поездки, для которых есть строка с прогнозом. Пусть таких поездок m, их реальные длительности равны y_1, y_2, ..., y_m, а прогнозы модели равны p_1, p_2, ..., p_m.
Базовый прогноз для каждой из этих поездок равен среднему реальных длительностей: mean = (y_1 + y_2 + ... + y_m) / m. Для базового прогноза и модели вычисляется средняя квадратичная ошибка MSE: MSE = ((a_1 - y_1)^2 + (a_2 - y_2)^2 + ... + (a_m - y_m)^2) / m, где a_i — прогнозируемая длительность. Для базового прогноза a_i = mean, для модели a_i = p_i.
Необходимо вывести слово MODEL, если MSE модели строго меньше MSE базового прогноза, иначе вывести слово BASELINE. После слова через пробел выводится меньшая из двух ошибок. Если ошибки равны, выводится BASELINE и значение MSE базового прогноза.
Число ошибки следует округлить до двух знаков после точки: значение, ровно находящееся посередине, округляется в большую сторону.
Формат ввода
В первой строке даны два целых числа n и m — количество строк в таблице завершённых поездок и количество строк в таблице прогнозов.
В следующих n строках даны два целых числа trip_id и actual_minutes — идентификатор поездки и её реальная длительность в минутах.
В следующих m строках даны два целых числа trip_id и forecast_minutes — идентификатор поездки и прогноз длительности в минутах.
Все идентификаторы в первой таблице различны. Все идентификаторы во второй таблице различны и встречаются в первой таблице. Гарантируется, что m >= 1.
Формат вывода
Выведите MODEL или BASELINE, затем через один пробел значение меньшей MSE с двумя знаками после точки.
Ограничения
1 <= n <= 2000.
1 <= m <= n.
1 <= trip_id <= 10^9.
1 <= actual_minutes <= 180.
0 <= forecast_minutes <= 240.
В каждой из двух таблиц не более 2000 строк.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- БВИ и льготы при поступлении — какой диплом что даёт и сколько лет он действует
- Перечневые олимпиады по информатике — олимпиады перечня Минобрнауки, их уровни и что нужно к диплому