Масштабирование признака на парковке
Условие
На парковке торгового центра для каждого временного интервала известны число въехавших автомобилей и число выехавших автомобилей. Эти сведения поступают двумя таблицами. Строки таблиц сопоставляются по идентификатору интервала.
Для строк, где число выехавших автомобилей указано, строится линейная модель ŷ = wq + b. В первой схеме признак q равен числу въездов x. Во второй схеме признак масштабируется: q = x / 100.
В обеих схемах начальные значения равны w = 0 и b = 0, выполняется ровно один шаг градиентного спуска с шагом η = 0.001 для функции потерь L = (1 / k) · Σ(ŵq + b - y)², где сумма берётся по k интервалам с известным числом выездов. Новые значения вычисляются по формулам w_new = w - η · (2 / k) · Σ(ŵq + b - y)q и b_new = b - η · (2 / k) · Σ(ŵq + b - y). Пропуск числа выездов обозначается символом -; такой интервал в суммах не участвует.
Требуется вывести, совпадают ли пары параметров после шага, а затем параметры первой и второй схемы. Если пары параметров равны точно до округления, выводится SAME, иначе выводится DIFFER. При равенстве параметров выводится слово SAME.
Формат ввода
В первой строке дано целое число n — число интервалов парковки.
В следующих n строках находится первая таблица: идентификатор интервала id и целое число въездов x.
В последних n строках находится вторая таблица: идентификатор интервала id и число выездов y, либо символ -, если число выездов отсутствует. Порядок строк во второй таблице может отличаться от порядка строк в первой.
Формат вывода
Выведите одну строку из пяти значений через пробел: слово SAME или DIFFER, затем w и b для первой схемы, затем w и b для второй схемы.
Каждое из четырёх чисел выведите с шестью знаками после десятичной точки. Числа округляются до ближайшего значения с шестью знаками после точки, а при ровно равных расстояниях выбирается значение с чётной последней цифрой.
Ограничения
1 ≤ n ≤ 4000.
Идентификатор id состоит из строчных латинских букв, цифр и символа _, его длина от 1 до 20.
Все идентификаторы в первой таблице различны. Все идентификаторы во второй таблице различны. Множества идентификаторов обеих таблиц совпадают.
0 ≤ x ≤ 1000.
Для указанного числа выездов выполняется 0 ≤ y ≤ 1000.
Хотя бы в одной строке второй таблицы число выездов указано, поэтому k ≥ 1.
Решить задачу с автопроверкой на Python →
Куда дальше
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- Родителям: подготовка бесплатно — сколько стоит репетитор, что даёт бесплатный маршрут и как понять, что ребёнок занимается