Time

13:09:53
23 May 2012
Version for print

Сомневающееся начальство

   На координатной прямой заданы N вершин, и надо многократно находить кратчайший среди путей, проходящих через эти вершины и и возвращающихся в начальную. (Длина пути равна сумме длин составляющих его отрезков, длину одного отрезка можно посчитать по формуле prb807.) Зачем один и тот же путь находить многократно? А он не один и тот же - начальство никак не определится, какие из этих N вершин в самом деле нужны, а какие нет. И поэтому приходится для одного и того же набора вершин обрабатывать разные запросы, отличающиеся набором нужных вершин. В каком порядке обходить нужные вершины и какую из них выбрать в качестве начальной (она же конечная), выбирает не начальство, а тот, кто ищет минимальный путь.


Specifications

   Входные данные

   В первой строке задано количество вершин N (4N17). В каждой из последующих N строк заданы по два целых числа, не превышающих по модулю 106 - x- и y-координаты очередной вершины. В следующей строке задано число Q - количество запросов от начальства (оно не ограничено явно, но гарантировано, что все запросы разные). Каждая из последующих Q строк содержит запрос в формате: сначала количество K (3KN) вершин, через которые надо пройти, потом номера этих вершин (каждый номер в пределах от 1 до N, все вершины в одном запросе разные.

   Выходные данные

   Программа должна вывести Q строк, в каждой из которых - единственное действительное число, равное ответу на соответствующий запрос. Ответ вывести с точностью 2 знака после десятичной точки.


Problem information

Time Limit: 2 seconds
Memory Limit: 256 MB
Balls for the passed test: 6.25
Complexity: 40% 3/5

Example

Example input

4
0 0
10 0
0 10
10 10
2
4 1 2 3 4
3 1 2 4

Example output

40
34.142136


← Платформы - 3 Problems Путь через горы →