11945. Подорож


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Author:
Problem type
Allowed languages
C++, Java, Pascal, Python

У двовимірній площині є \(N\) міст і \(M\) скринь. Місто \(i\) знаходиться в координатах (\(X_i,Y_i\)), а скриня \(i\) знаходиться в координатах (\(P_i,Q_i\)).

Степан вирушить у подорож, яка почнеться з початкової точки, відвідає всі \(N\) міст, а потім повернеться до початкової точки. Відвідувати скрині не обов’язково, але кожна скриня містить прискорювач. Щоразу, коли він бере прискорювач, швидкість його руху збільшується в 2 рази. Початкова швидкість руху Степана дорівнює 1.

Знайдіть найкоротший час, необхідний для завершення подорожі.

Обмеження

  • \(1 \leq N \leq 12\)
  • \(0 \leq M \leq 5\)
  • \(-10^9 \leq X_i,Y_i,P_i,Q_i \leq 10^9\)
  • (0,0), (\(X_i,Y_i\)), і (\(P_i,Q_i\)) відрізняються.
  • Усі значення у вхідних даних є цілими числами.

Формат вхідних даних

Перший рядок містить цілі числа \(N,M\)

Наступні  \(N\) рядків містять цілі числа \(X_i, Y_i\)

Далі  \(M\) рядків містять цілі числа \(P_i, Q_i\)

Числа у рядках розділяються пропуском.

Формат вихідних даних

У вихідний потік виведіть відповідь. Ваш результат вважатиметься правильним, якщо абсолютна чи відносна помилка становитиме не більше \(10^{-6}\).

Приклад вхідних даних

2 1
1 1
0 1
1 0

Приклад вихідних даних

2.5000000000

Ось один з оптимальних способів завершити подорож.

  • Пройдіть відстань 1 від початку до скрині 1 зі швидкістю 1, час 1.
  • Пройдіть відстань 1 від скрині 1 до міста 1 зі швидкістю 2, час 0,5.
  • Пройдіть відстань 1 від міста 1 до міста 2 зі швидкістю 2, час 0,5.
  • Пройдіть відстань 1 від міста 2 до початкової точки зі швидкістю 2, час 0,5.

Приклад вхідних даних

2 1
1 1
0 1
100 0

Приклад вихідних даних

3.4142135624

Ось один з оптимальних способів завершити подорож.

  • Пройдіть відстань 1.41… від початку до міста 1 зі швидкістю 1, час 1.41….
  • Пройдіть відстань 1 від міста 1 до міста 2 зі швидкістю 1, час 1.
  • Пройдіть відстань 1 від міста 2 до початкової точки зі швидкістю 1, час 1.

Приклад вхідних даних

1 2
4 4
1 0
0 1

Приклад вихідних даних

4.3713203436

Коментарі

Ще немає коментарів.