#abc274e. [abc274_e]Booster

[abc274_e]Booster

问题描述

在一个二维平面上,有 NN 个城镇和 MM 个宝箱。城镇 ii 的坐标为 (Xi,Yi)(X_i,Y_i),宝箱 ii 的坐标为 (Pi,Qi)(P_i,Q_i)

Takahashi 将进行一次旅行,他从原点出发,访问所有 NN 个城镇,然后返回原点。
访问宝箱并非强制性的,但每个宝箱都含有加速器。每次拾起一个加速器,他的移动速度就会乘以 22

Takahashi 的初始移动速度为 11。找到完成旅行所需的最短时间。

约束条件

  • 1N121 \leq N \leq 12
  • 0M50 \leq M \leq 5
  • 109Xi,Yi,Pi,Qi109-10^9 \leq X_i,Y_i,P_i,Q_i \leq 10^9
  • (0,0)(0,0)(Xi,Yi)(X_i,Y_i)(Pi,Qi)(P_i,Q_i) 是不同的点。
  • 输入中的所有值都是整数。

输入

输入以以下格式从标准输入给出:

NN MM X1X_1 Y1Y_1 \vdots XNX_N YNY_N P1P_1 Q1Q_1 \vdots PMP_M QMQ_M

输出

输出答案。如果与评判答案的绝对或相对误差最多为 10610^{-6},则将认为输出正确。


示例输入 1

2 1
1 1
0 1
1 0

示例输出 1

2.5000000000

以下是一种完成旅行的最优方法。

  • 以速度 11 从原点前往宝箱 11 的距离为 11,需要时间 11
  • 以速度 22 从宝箱 11 前往城镇 11 的距离为 11,需要时间 0.50.5
  • 以速度 22 从城镇 11 前往城镇 22 的距离为 11,需要时间 0.50.5
  • 以速度 22 从城镇 22 前往原点的距离为 11,需要时间 0.50.5

示例输入 2

2 1
1 1
0 1
100 0

示例输出 2

3.4142135624

以下是一种完成旅行的最优方法。

  • 以速度 11 从原点前往城镇 11 的距离为 1.411.41\ldots,需要时间 1.411.41\ldots
  • 以速度 11 从城镇 11 前往城镇 22 的距离为 11,需要时间 11
  • 以速度 11 从城镇 22 前往原点的距离为 11,需要时间 11

示例输入 3

1 2
4 4
1 0
0 1

示例输出 3

4.3713203436

以下是一种完成旅行的最优方法。

  • 以速度 11 从原点前往宝箱 11 的距离为 11,需要时间 11
  • 以速度 22 从宝箱 11 前往宝箱 22 的距离为 1.411.41\ldots,需要时间 0.7070.707\ldots
  • 以速度 44 从宝箱 22 前往城镇 11 的距离为 55,需要时间 1.251.25
  • 以速度 44 从城镇 11 前往原点的距离为 5.655.65\ldots,需要时间 1.411.41\ldots