Сумнівне начальство
На координатній прямій розташовано N
вершин, і потрібно багаторазово знаходити найкоротший шлях, що проходить через ці вершини і повертається до початкової точки.
Довжина шляху визначається як сума довжин його відрізків, де довжину одного відрізка можна обчислити за формулою
Чому один і той самий шлях потрібно знаходити багаторазово? Справа в тому, що керівництво не може визначитися, які з цих N
вершин дійсно потрібні, а які ні. Тому для одного і того ж набору вершин доводиться обробляти різні запити, що відрізняються набором необхідних вершин. Порядок обходу потрібних вершин і вибір початкової (вона ж кінцева) вершини визначає не керівництво, а той, хто шукає мінімальний шлях.
Вхідні дані
У першому рядку задано кількість вершин N
(4 ≤ N ≤ 17
). У кожному з наступних N
рядків задано по два цілих числа, що не перевищують за модулем 10^6
- x
- та y
-координати відповідної вершини. У наступному рядку задано число Q
- кількість запитів від керівництва (воно не обмежене явно, але гарантовано, що всі запити різні). Кожен з наступних Q
рядків містить запит у форматі: спочатку кількість K
(3 ≤ K ≤ N
) вершин, через які потрібно пройти, потім номери цих вершин (кожен номер у межах від 1 до N
, всі вершини в одному запиті різні).
Вихідні дані
Програма повинна вивести Q
рядків, у кожному з яких - єдине дійсне число, що дорівнює відповіді на відповідний запит. Відповідь вивести з точністю до 2 знаків після десяткової точки.