#ABC374D. 激光划线

激光划线

激光划线

题目描述

有一台通过在 xyxy 平面上发射激光来印制线段的打印机。

开始打印时,激光位于坐标 (0,0)(0, 0)

打印一条线段时,按以下步骤进行:

  1. 先把激光移动到该线段的一个端点。可以从任意一个端点开始画。
  2. 然后,在发射激光的同时,从当前端点沿直线移动到另一个端点。

不允许在线段中途停止打印。

不发射激光时,激光可以以每秒 SS 单位的速度向任意方向移动。

发射激光时,激光只能沿正在打印的线段以每秒 TT 单位的速度移动。

除移动激光以外所需的时间可以忽略不计。

Takahashi 想用这台打印机打印 NN 条线段。

ii 条线段连接坐标 (Ai,Bi)(A_i, B_i)(Ci,Di)(C_i, D_i)

部分线段可能重叠,重叠部分需要为每条线段分别打印。

请问在最优操作下,完成打印所有线段所需的最少秒数是多少?

输入格式

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

NN SS TT
A1A_1 B1B_1 C1C_1 D1D_1
\vdots
ANA_N BNB_N CNC_N DND_N

输出格式

输出答案。

当输出与真实值的绝对误差或相对误差不超过 10610^{-6} 时,视为正确。

样例

3 2 1
1 3 2 1
0 2 0 0
3 0 2 0
6.44317475868633722080

在发射激光的同时,将激光从 (0,0)(0,0) 移动到 (0,2)(0,2),打印第 2 条线段。

这需要 22 秒。

不发射激光,将激光从 (0,2)(0,2) 移动到 (1,3)(1,3)

这需要 2/2\sqrt{2}/2 秒。

在发射激光的同时,将激光从 (1,3)(1,3) 移动到 (2,1)(2,1),打印第 1 条线段。

这需要 5\sqrt{5} 秒。

不发射激光,将激光从 (2,1)(2,1) 移动到 (2,0)(2,0)

这需要 1/21/2 秒。

在发射激光的同时,将激光从 (2,0)(2,0) 移动到 (3,0)(3,0),打印第 3 条线段。

这需要 11 秒。

总时间为 $2 + (\sqrt{2}/2) + \sqrt{5} + (1/2) + 1 \approx 6.443175$ 秒。

2 1 1
0 0 10 10
0 2 2 0
20.97056274847714058517
6 3 2
-1000 -1000 1000 1000
1000 -1000 -1000 1000
-1000 -1000 1000 1000
1000 -1000 -1000 1000
1000 1000 -1000 -1000
-1000 1000 1000 -1000
9623.35256169626864153344

这里有多条线段重叠,重叠部分需要为每条线段分别打印。

6 10 8
1000 1000 -1000 -1000
1000 -1000 -1000 -1000
-1000 1000 1000 1000
-1000 1000 -1000 -1000
1000 1000 1000 -1000
1000 -1000 -1000 1000
2048.52813742385702910909

数据范围

  • 所有输入均为整数
  • 1N61 \le N \le 6
  • 1TS10001 \le T \le S \le 1000
  • 1000Ai,Bi,Ci,Di1000-1000 \le A_i, B_i, C_i, D_i \le 1000
  • (Ai,Bi)(Ci,Di)(A_i, B_i) \neq (C_i, D_i)1iN1 \le i \le N
难度 普及+/提高-
通过率
尝试 0
已通过 0
ID
3441
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签