CF182A Battlefield
题目描述
Vasya 在大学里落后了,于是他来到了战场。开个玩笑!其实他只是在玩一款电脑游戏。战场是一个平坦的平台,上面挖有 $n$ 条战壕。这些战壕是平面上与坐标轴平行的线段,且任意两条战壕不相交。
远处有一台巨大的敌方激光器。激光器会充电 $a$ 秒,然后持续射击 $b$ 秒,接着再次充电 $a$ 秒,如此循环往复。Vasya 知道 $a$ 和 $b$ 的值。他清楚,在激光射击期间,自己必须躲在战壕内;而在充电期间,他可以安全地在战场上移动。关键是要在激光射击前及时躲入战壕。如果 Vasya 恰好在激光开始射击的时刻到达战壕,我们认为他成功躲藏。巧合的是,任何战壕的长度(以米为单位)在数值上不超过 $b$。
初始时,Vasya 位于点 $A$,他需要到达点 $B$。Vasya 可以以 1 米每秒的速度向任意方向移动。他可以在战壕的任意位置进入或离开,且进出战壕不消耗时间。在战壕内移动时,可以不离开战壕。
假设激光在初始时刻刚刚开始充电,求 Vasya 从点 $A$ 到达点 $B$ 所需的最短时间。如果无法到达,输出 -1。如果 Vasya 在激光开始射击的时刻恰好到达点 $B$,也视为成功。
输入格式
第一行包含两个以空格分隔的整数 $a$ 和 $b$ $(1 \leq a, b \leq 1000)$,分别表示充电和射击的持续时间(单位:秒)。
第二行包含四个以空格分隔的整数 $A_{x}$、$A_{y}$、$B_{x}$、$B_{y}$ $(-10^{4} \leq A_{x}, A_{y}, B_{x}, B_{y} \leq 10^{4})$,表示点 $A$ 和 $B$ 的坐标。保证点 $A$ 和 $B$ 不在任何战壕上。
第三行包含一个整数 $n$ $(1 \leq n \leq 1000)$,表示战壕的数量。
接下来 $n$ 行,每行包含四个以空格分隔的整数 $x_{1}$、$y_{1}$、$x_{2}$、$y_{2}$ $(-10^{4} \leq x_{i}, y_{i} \leq 10^{4})$,表示对应战壕的两个端点坐标。
所有坐标的单位均为米。保证每条战壕满足 $x_{1} = x_{2}$ 或 $y_{1} = y_{2}$。任意两条战壕不相交。每条战壕的长度(以米为单位)在数值上不超过 $b$。
输出格式
如果 Vasya 能够从点 $A$ 到达点 $B$,输出他所需的最短时间。否则输出 -1。
答案被视为正确当且仅当绝对误差或相对误差不超过 $10^{-4}$。
说明/提示
翻译由 DeepSeek R1 完成