#bzoj2328. 赛车游戏

赛车游戏

题目原件

tmp.png

题目描述

著名歌手LAALA\text{LAALA}最近迷上了一款赛车游戏,游戏中开车的玩家在不同的路段需要选择不同的速度,使得自己在最短的时间内到达终点。开始游戏时车内的初始流量为 ff,所以游戏的关键是如何在速度和耗油量之间实现平衡。

LAALA\text{LAALA}经过一段时间的研究后,发现这款游戏可以用一个简单的数学模型来描述。具体来说,从起点到终点的路线可以被简化成折线段每条线段代表一个上坡或者下坡,若在一段斜率为ss(s>0s>0表示上坡,s=0s=0表示平地,s<0s<0表示下坡)的道路上,以速度vv km/hkm/h行驶。则每公里的耗油量为 max(0,av+bs)\max(0,av+bs),其中 aabb 为游戏的内置参数,分别表示在平地行驶时的耗油率及斜坡对耗油量的影响(bb恒为正),这里假设加速和减速不耗油,且看成是瞬间完成的,所以即使在同一条线段上也可采取以不同的速度行驶的策略来缩短耗费的时间。

由于LAALA\text{LAALA}在以前的游戏中表现不佳,现在使用的车型依然是系统初始分配的,所以它的速度不能超过vmaxv_{max} km/hkm/h。在获得这些参数后,LAALA\text{LAALA}想知道在初始油量受限的情况下(中途不许加油)自己能得到的最佳成绩是多少?作为LAALA\text{LAALA}的歌迷,你能帮帮他吗?

输入格式

从文件input.txt\tt{input.txt}中读入数据输入文件的第一行是一个整数TT表示数据组数,对每组数据第一行是用空格隔开的44个浮点数a,b,vmaxa,b,v_{max}ff。其中a,ba,bvmaxv_{max}的意义如前所述,ff表示初始油量。其单位也与前面描述的保持一致,第二行是一个整数r表示线段的数目,接下来的r行。每行是用空格隔开的两个浮点数,xix_iyiy_i分别表示在标准笛卡尔坐标系下,该线段在水平方向和垂直方向的改变量(单位:mm)。

输出格式

输出文件output.txt\tt{output.txt}包含TT行,依次对应输入中的TT组数据。对某组数据若基于初始油量无法到达终点,则对应行输出IMPOSSIBLE。否则输出最少需要的时间。(单位:hh

样例

3
10.0 1.0 150 0.0
1
100.0 -100.0
10.0 100.0 150 1.0
2
100 0
100 100
0.5 0.1 100 10
3
1000 0
100 10
100 -10
1.41421
IMPOSSIBLE
0.07212

数据范围与约定

对于100%100\%的数据:$T\le 100,0.1\le a,b\le 100,10\le v_{max}\le 200,0\le f\le 50,r\le 10000,i\le x_i\le 1000,-1000\le y_i\le 1000$.

且如果问题有解,那么答案不超过2424

提示

  • 你所输出的答案需要恰好保留到小数点后55位。当且仅当你的输出与标准答案完全一致时,你的输出才被视作正确。
  • 没数据,请不要提交!