H - 最小花费

查看题解 查看答案
题目描述
Time Limit: 1000 ms
Memory Limit: 32768 mb

某条线路上有 N个火车站,按顺序依次编号为 1∼N。

对于第 i 号车站(i≥2),1 号车站与该车站之间的距离为 ai。

显然,ai 序列是递增的。

乘客在购票时,有三种车票可选:

  • 当起点站和终点站之间的距离 S 满足 0<S≤L1 时,票价为 C1 元。
  • 当起点站和终点站之间的距离 S 满足 L1<S≤L2 时,票价为 C2 元。
  • 当起点站和终点站之间的距离 S 满足 L2<S≤L3 时,票价为 C3 元。

注意,由于只出售上述三种车票,所以当起点站和终点站之间的距离 S 大于 L3 时,只能选择从中途一些车站下车,重新买票的方式不断延续旅途直至到达终点站。

换句话说,这种情况下,乘客至少要买两张或更多车票才能到达终点站。

保证任意两个相邻车站之间的距离不超过 L3。

现在,某乘客要在 A 号车站上车,并在 B 号车站下车。

请你计算他所需要的最小花费是多少。

数据范围

1≤L1<L2<L3≤1000,
1≤C1<C2<C3≤1000,
1≤A<B≤N,
1≤N≤1000,
1≤ai≤10^6

输入输出格式
输入描述:
以如下格式输入数据:
L1  L2  L3  C1  C2  C3
A  B
N
a[2]
a[3]
……
a[N]
输出描述:
可能有多组测试数据,对于每一组数据,
根据输入,输出乘客从A到B站的最小花费。
输入输出样例
输入样例#:
1 2 3 1 2 3
1 2
2
2
输出样例#:
复制
2
题目来源
清华大学上机题

提交代码后在此处可查看状态