DBSCAN
(Время: 10 сек. Память: 32 Мб Сложность: 50%)
Учёный решил провести кластеризацию некоторого множества звёзд по их расположению на плоской карте звёздного неба. Кластер звёзд – это набор звёзд (точек) на карте. Каждая звезда обязательно принадлежит только одному из кластеров. Между любой парой звёзд кластера существует маршрут, проходящий через звёзды, отдалённые друг от друга не более чем на единицу. Каждый кластер содержит не менее 30 звёзд. Созвездия, состоящие менее чем из 30 звёзд, считаются аномалиями и не учитываются в исследованиях.
Известно, что любые две звезды, не принадлежащие одному кластеру или аномалии, отдалены друг от друга более чем на единицу.
Центр кластера – это одна из звёзд на графике, сумма расстояний от которой до всех остальных звёзд кластера минимальна. Под расстоянием понимается расстояние Евклида между двумя точками A(x1,y1) и B(x2,y2) на плоскости, которое вычисляется по формуле:
По заданным координатам звёзд необходимо найти центры кластеров и вычислить следующие два параметра:
- Px – среднее арифметическое абсцисс центров кластеров
- Py – среднее арифметическое ординат центров кластеров
Входные данные
Входной файл INPUT.TXT содержит не более 1000 строк. В каждой строке записаны два вещественных числа xi, yi – координаты звезды.
Гарантируется, что на представленной карте звёздного неба присутствует от 2 до 10 кластеров и при этом центр каждого кластера определяется однозначно.
Выходные данные
В выходной файл OUTPUT.TXT выведите два целых числа: целую часть абсолютного значения 10 000 × Px и целую часть абсолютного значения 10 000 × Py.
Пример
№ | INPUT.TXT | OUTPUT.TXT |
1 | 1.65449461842075 3.98277077248044
2.25516460321932 5.21902531879277
1.96209370572822 5.90120140928511
...
[скачать]
| 10738 30730 |
Пояснение
Возможные данные одного из файлов иллюстрированы графиком:
Внимание! Карта звёзд приведёна в иллюстративных целях для произвольных значений, не имеющих отношения к какому-либо тесту входных данных.
Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!
|