#B1289. 旅行家的最低油费 [NOIP 1999 普及组/提高组]

旅行家的最低油费 [NOIP 1999 普及组/提高组]

【题目描述】

旅行家要从起点行驶到终点,路程为 SS。

汽车油箱容量为 CC 升,每升汽油可以行驶 LL 千米;起点油价为 P0P_0,沿途有 NN 个加油站,第 ii 个加油站距离起点 DiD_i 千米、油价为 PiP_i。

出发时油箱为空,可以任意决定到站后的加油量。请计算到达终点的最小花费。


【输入描述】

第一行输入实数 S,C,L,P0S,C,L,P_0 和整数 NN。

接下来 NN 行,每行输入实数 Di,PiD_i,P_i。

保证:

  • 1≤S,C,L≤5001\le S,C,L\le 500;
  • 0≤N≤60\le N\le 6;
  • 0≤P0,Pi≤5000\le P_0,P_i\le 500;
  • 站点按距离递增,且 0<Di<S0<D_i<S;
  • 输入小数最多保留两位。

【输出描述】

若可以到达终点,输出最小花费,四舍五入保留两位小数;否则输出 No Solution。


【样例 1】

【样例 1 输入】

10 5 2 2 1
4 1

【样例 1 输出】

7.00

【样例 1 解释】

先在起点购买 22 升到达第一个加油站,再购买 33 升到达终点。


【样例 2】

【样例 2 输入】

10 2 2 2 0

【样例 2 输出】

No Solution

【样例 2 解释】

油箱最多行驶 44 千米,无法到达终点。