Выбор разбиения въездов и выездов парковки
Условие
Камеры парковки торгового центра зафиксировали точки въезда и выезда автомобилей. Каждая запись содержит две координаты точки и два варианта готового разбиения записей на группы.
Для каждого разбиения вычисляется инерция. Для каждой непустой группы находится её центр: среднее значение координат всех точек этой группы. Вклад группы в инерцию равен сумме квадратов расстояний от точек группы до её центра. Инерция разбиения равна сумме вкладов всех его групп.
Для точки с координатами (x_i, y_i) и центра её группы (c_x, c_y) вклад точки равен (x_i - c_x)^2 + (y_i - c_y)^2. Необходимо определить, у какого из двух разбиений инерция меньше.
Если инерции совпадают, следует вывести номер первого разбиения. Округление не выполняется, так как требуется вывести целое число.
Формат ввода
В первой строке дано целое число n — количество записей камер.
В следующих n строках содержатся четыре целых числа x, y, g1, g2: координаты точки, номер её группы в первом разбиении и номер её группы во втором разбиении.
Формат вывода
Выведите 1, если инерция первого разбиения не больше инерции второго, и 2 в противном случае.
Ограничения
1 ≤ n ≤ 2000.
0 ≤ x, y ≤ 10000.
1 ≤ g1, g2 ≤ 3.
Пропусков в данных нет. Группа может состоять из одной точки, её вклад в инерцию равен нулю. Группы, номер которых не встретился во входных данных, не рассматриваются.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- Родителям: подготовка бесплатно — сколько стоит репетитор, что даёт бесплатный маршрут и как понять, что ребёнок занимается