Созвездия
Вадим увлекается астрономией и даже ходит в астрономический кружок. Недавно на кружке он узнал о созвездиях. Это понятие его очень заинтересовало, поэтому, придя домой вечером, он софотографировал звездное небо с помощью телескопа и стал искать созвездия на получившемся снимке.
Для того, чтобы выделять созвездия, он придумал простое правило - звезда A находится в одном созвездии со всеми теми звездами, изображения которых на снимке находятся от ее изображения "не слишком далеко". Пусть расстояние от изображения звезды A до ближайшего изображения звезды равно d. Тогда в одно созвездие с A Вадим отнесет все звезды, изображения которых находятся на расстоянии не более k·d, где k - некоторое целое число, выбранное Вадимом заранее.
Это правило он применяет следующим образом. Звезды A и B находятся, по мнению Вадима, в одном созвездии, если существует такая последовательность звезд A = u1, u2, ..., ul = B, что для любых двух соседних звезд ui и ui+1 в этой последовательности выполняется хотя бы одно условие из двух:
- расстояние между их изображениями не превосходит k·md(ui) (как md(X) будем обозначать расстояние от изображения звезды X до ближайшего изображения другой звезды);
- расстояние между их изображениями не превосходит k·md(ui+1).
При этом Вадим обязательно относит две звезды к одному созвездию, если существует указанная последовательность звезд.
Ваша задача состоит в том, чтобы написать программу, которая по информации о координатах изображений звезд на снимке, разобъет их на созвездия по методу Вадима.
Технические условия
Входные данные
Первая строка входного файла содержит два целых числа: n - количество звезд на снимке (2 ≤ n ≤ 5000) и k (1 ≤ k ≤ 10). Каждая из последующих n строк содержит по 2 числа - xi и yi - координаты изображения очередной звезды (|xi|, |yi| ≤ 105). Изображения всех звезд находятся в различных точках.
Выходные данные
В выходной файл выведите m - количество созвездий. В последующих m строках выведите описания созвездий. Описания каждого созвездия должно содержать число ni - количество звезд в очередном созвездии, и ni чисел - номера этих звезд. Звезды нумеруются натуральными числами от 1 до n в том порядке, в котором они перечислены во входном файле.
Информация о задаче
Лимит времени: 3 секундыЛимит памяти: 64 MB
Баллы за пройденный тест: 3.125
Сложность: 63% 3/8
Пример
Пример входных данныхSample 1 8 1 0 0 1 1 1 0 0 1 2 2 2 3 3 2 3 3 Sample 2 8 2 0 0 1 1 1 0 0 1 2 2 2 3 3 2 3 3 |
Пример выходных данныхSample 1 2 4 1 2 3 4 4 5 6 7 8 Sample 2 1 8 1 2 3 4 5 6 7 8 |
| ← Вклад "Антикризисный" | Список задач | Битоническая подпоследовательность → |
