阅读 (reading.cpp/c/pas)
【问题描述】
fateice喜欢阅读,现在他准备读一本书,他会从第K页开始看,然后看到第M页。书中的内容不一定都让fateice有所收获,因为fateice太强。更具体地,书中有N页能让fateice有所收获,阅读第 页可以获得 的收获值。
由于书的页数太多,fateice会选择跳着看,但是他一次最多跳D页(两页页码差不大于D),然后阅读跳到的那一页内容,每次翻页他将会丧失A的收获值。
fateice想在阅读这本书前就知道他能获得的最大收获值之和。
【输入格式】
第一行五个非负整数 K,M,D,A,N。
接下来N行每行两个正整数 , 。
【输出格式】
仅一行一个数字,表示能获得的最大收获值之和。
reading.in
0 10 4 10 2
3 10
8 5
reading.out
-20
【输入输出样例】
从第0页开始,跳到第3页并阅读,丧失10收获值,再得到10收获值。跳到第7页再跳到第10页,丧失20收获值。最终-10收获值为最优策略。
【数据规模】
对于20%的数据,N≤1000。
对于另外30%的数据,D≤100。
对于100%的数据,1≤N≤ ,1≤ ,A,D≤ ,0≤K<M≤ , 单调递增。
信息
- 难度
- 9
- 分类
- (无)
- 标签
- 递交数
- 3
- 已通过
- 1
- 通过率
- 33%
- 被复制
- 1
- 上传者