Олимпиадный тренинг

Задача . Кластеризация звёзд: плотность и количество соседей в радиусе


Задача

Темы:

Фрагмент звёздного неба спроецирован на плоскость. Учёный решил провести кластеризацию точек: разбить их на \(N\) непересекающихся непустых подмножеств так, чтобы точки каждого подмножества лежали внутри прямоугольника со сторонами длиной \(H\) и \(W\), причём прямоугольники между собой не пересекаются. Стороны прямоугольников не обязательно параллельны координатным осям.

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

Для каждой звезды дана характеристика: тип цвета, тип светимости и её размер в соответствии с таблицей.

Обозначение Цвет
G белый
J зелёный
L синий
N оранжевый
Y красный
S голубой
Z жёлтый
Обозначение Размер
I сверхгигант
II яркий гигант
III гигант
IV субгигант
V карлик
VI субкарлик
VII белый карлик

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

Будем называть центром кластера точку этого кластера, сумма расстояний от которой до всех остальных точек кластера минимальна. Для каждого кластера гарантируется единственность его центра. Расстояние между двумя точками на плоскости \(A(x_1,y_1)\) и \(B(x_2,y_2)\) вычисляется по формуле \(d=\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}\).

В файле А хранятся данные о звёздах двух кластеров, где \(H=6{,}5\) и \(W=4{,}5\) для каждого кластера. В каждой строке записана информация о расположении на карте одной звезды: сначала координата \(x\), затем координата \(y\), а затем характеристика звезды. Значения даны в условных единицах. Известно, что количество точек не превышает 1100.

В файле Б хранятся данные о звёздах трёх кластеров, где \(H=6{,}5\) и \(W=5\) для каждого кластера. Известно, что количество точек не превышает 10 000. Структура хранения информации о звёздах в файле Б аналогична файлу А.

Плотностью звезды \(s\) в её кластере будем называть количество звёзд того же кластера (не считая саму \(s\)), расстояние до которых не превышает \(R=1{,}5\).

Для файла А определите координаты центра каждого кластера, затем найдите два числа: \(A_1\) — максимальная плотность среди звёзд кластера с большим числом точек; \(A_2\) — средняя арифметическая плотность звёзд того же кластера.

Для файла Б определите координаты центра каждого кластера, затем найдите два числа: \(B_1\) — максимальная по трём кластерам максимальная плотность звезды; \(B_2\) — расстояние между центрами двух кластеров, имеющих соответственно максимальную и минимальную среднюю плотность.

В ответе запишите четыре числа: значения \(A_1\) и \(B_1\) — целые (количества соседей), их следует записать как есть; значения \(A_2\) и \(B_2\) — вещественные, их следует записать как целую часть абсолютного значения произведения на \(10\,000\). В первой строке — \(A_1\) и \(A_2\) через пробел, во второй строке — \(B_1\) и \(B_2\) через пробел.


Статистика успешных решений по компиляторам
Комментарий учителя