AT_abc261_d.[ABC261D] Flipping and Bonus
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
高桥君要进行 N 次抛硬币。他还持有一个计数器,初始时计数器的数值为 0。
在第 i 次抛硬币时,根据正反面的结果,会发生以下情况:
- 如果是正面:高桥君将计数器的数值加 1,并获得 Xi 日元。
- 如果是反面:高桥君将计数器的数值重置为 0,且无法获得金钱。
此外,有 M 种连续奖励,第 i 种连续奖励为:每当计数器的数值变为 Ci 时,可以获得 Yi 日元。
请你求出高桥君最多可以获得多少日元。
输入格式
输入以如下格式从标准输入给出。
N M X1 X2 … XN C1 Y1 C2 Y2 ⋮ CM YM
输出格式
请输出高桥君能够获得的最大金额(整数)。
输入输出样例
输入#1
6 3 2 7 1 8 2 8 2 10 3 1 5 5
输出#1
48
输入#2
3 2 1000000000 1000000000 1000000000 1 1000000000 3 1000000000
输出#2
5000000000
说明/提示
限制条件
- 1≤M≤N≤5000
- 1≤Xi≤109
- 1≤Ci≤N
- 1≤Yi≤109
- C1,C2,…,CM 均互不相同。
- 输入均为整数。
样例解释 1
依次出现正面、正面、反面、正面、正面、正面时,获得的金额如下:
- 第 1 次抛硬币为正面。计数器从 0 变为 1,获得 2 日元。
- 第 2 次抛硬币为正面。计数器从 1 变为 2,获得 7 日元,并作为连续奖励获得 10 日元。
- 第 3 次抛硬币为反面。计数器从 2 变为 0。
- 第 4 次抛硬币为正面。计数器从 0 变为 1,获得 8 日元。
- 第 5 次抛硬币为正面。计数器从 1 变为 2,获得 2 日元,并作为连续奖励获得 10 日元。
- 第 6 次抛硬币为正面。计数器从 2 变为 3,获得 8 日元,并作为连续奖励获得 1 日元。
此时高桥君共获得 2+(7+10)+0+8+(2+10)+(8+1)=48 日元,为最大值。
请注意,连续奖励每当计数器数值变为 Ci 时都可以获得多次。
顺便一提,若 6 次抛硬币全部为正面,则只能获得 2+(7+10)+(1+1)+8+(2+5)+8=44 日元,不是最大值。
样例解释 2
请注意,答案可能超出 32 位整数范围。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?