bzoj#P3897. Power

Power

题目描述

我们假设小 T 有一个人体耐力上限 EE,在月初的时候,小 T 有 EE 的体力。

接下来每一天有一个任务,这个任务小 T 可以付出任意的非负整数体力去完成,并且,每一天的结束的时候,小 T 会增加 RR 的体力。当然体力是不可能超出 EE 的,也就是说,如果当前体力 +R+R 大于 EE,那么恢复完之后的体力依旧是 EE。毫无疑问,体力是不可能小于 00 的。

每个任务会有一个价值 viv_i,一个任务的收获就是这个任务的价值乘上付出的体力。

你要帮帮小 T,使他最大化所有任务的收获之和,方便他继续的高富帅!最后,我们的口号是“烧死 GFS\sim”。

输入格式

本题存在多组数据。

第一行一个正整数 CaseCase,表示数据的组数。

对于每一组数据,第一行有三个正整数 E,R,nE,R,n,表示的是能量上限,恢复值,和这个月的天数。第二行有 nn 个非负整数表示 v1vnv_1 \dots v_n

输出格式

对于每一组数据,输出一行,即最大化的收获之和。

1
5 2 2
2 1
12

样例说明

第一天用 55 的体力,接下来恢复 22 点体力,再用光。

数据规模与约定

对于 100%100\% 的数据,Case10Case\le101n5×1051\le n\le 5\times 10^5E106E\le 10^6vi106v_i\le 10^6,所有输入均非负。

题目来源

By 佚名提供