eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Созвездия

Созвездия

Вадим увлекается астрономией и даже ходит в астрономический кружок. Недавно на кружке он узнал о созвездиях. Это понятие его очень заинтересовало, поэтому, придя домой вечером, он софотографировал звездное небо с помощью телескопа и стал искать созвездия на получившемся снимке. Для того, чтобы выделять созвездия, он придумал простое правило - звезда \textbf{A} находится в одном созвездии со всеми теми звездами, изображения которых на снимке находятся от ее изображения "не слишком далеко". Пусть расстояние от изображения звезды \textbf{A} до ближайшего изображения звезды равно \textbf{d}. Тогда в одно созвездие с \textbf{A} Вадим отнесет все звезды, изображения которых находятся на расстоянии не более \textbf{k}·\textbf{d}, где \textbf{k} - некоторое целое число, выбранное Вадимом заранее. Это правило он применяет следующим образом. Звезды \textbf{A} и \textbf{B} находятся, по мнению Вадима, в одном созвездии, если существует такая последовательность звезд \textbf{A} = \textbf{u_1}, \textbf{u_2}, ..., \textbf{u_l} = \textbf{B}, что для любых двух соседних звезд \textbf{u_i} и \textbf{u_\{i+1\}} в этой последовательности выполняется хотя бы одно условие из двух: \begin{itemize} \item расстояние между их изображениями не превосходит \textbf{k}·\textbf{md}(\textbf{u_i}) (как \textbf{md}(\textbf{X}) будем обозначать расстояние от изображения звезды \textbf{X} до ближайшего изображения другой звезды); \item расстояние между их изображениями не превосходит \textbf{k}·\textbf{md}(\textbf{u_\{i+1\}}). \end{itemize} При этом Вадим обязательно относит две звезды к одному созвездию, если существует указанная последовательность звезд. Ваша задача состоит в том, чтобы написать программу, которая по информации о координатах изображений звезд на снимке, разобъет их на созвездия по методу Вадима. \InputFile Первая строка входного файла содержит два целых числа: \textbf{n} - количество звезд на снимке (\textbf{2} ≤ \textbf{n} ≤ \textbf{5000}) и \textbf{k} (\textbf{1} ≤ \textbf{k} ≤ \textbf{10}). Каждая из последующих \textbf{n} строк содержит по \textbf{2} числа - \textbf{x_i} и \textbf{y_i} - координаты изображения очередной звезды (|\textbf{x_i}|, |\textbf{y_i}| ≤ \textbf{10^5}). Изображения всех звезд находятся в различных точках. \OutputFile В выходной файл выведите \textbf{m} - количество созвездий. В последующих \textbf{m} строках выведите описания созвездий. Описания каждого созвездия должно содержать число \textbf{n_i} - количество звезд в очередном созвездии, и \textbf{n_i} чисел - номера этих звезд. Звезды нумеруются натуральными числами от \textbf{1} до \textbf{n} в том порядке, в котором они перечислены во входном файле.
Лимит времени 3 секунды
Лимит использования памяти 64 MiB
Входные данные #1
8 1
0 0
1 1
1 0
0 1
2 2
2 3
3 2
3 3
Выходные данные #1
2
4 1 2 3 4
4 5 6 7 8