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

Задача . *ЕГЭ 27. Кластеризация звёзд: цветовые цепочки


Задание выполняется с использованием прилагаемых файлов.


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

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

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

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

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

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

\(d(A, B) = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2}\).

В файле А хранятся данные о звёздах двух кластеров, где H=7, W=5 для каждого кластера. В каждой строке записана информация об одной звезде: сначала координата x, затем координата y, затем характеристика звезды. Значения даны в условных единицах. Известно, что количество точек не превышает 1000.

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

Известно, что в файле Б имеются координаты ровно трёх «лишних» точек, являющихся аномалиями, возникшими в результате помех при передаче данных. Эти три точки не относятся ни к одному из кластеров, их учитывать не нужно.

Гарантируется, что во всех кластерах обоих файлов количество точек различно.

Две звезды одного цвета в одном кластере будем считать соединёнными, если расстояние между ними не превышает \(R = 0{,}4\). Цветовая цепочка — это максимальная группа звёзд одного цвета в одном кластере, в которой от любой звезды можно добраться до любой другой по последовательности соединённых звёзд. Размером цепочки будем называть количество звёзд в ней.

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

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

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


time 500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

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