AT_abc261_d.[ABC261D] Flipping and Bonus

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

高桥君要进行 NN 次抛硬币。他还持有一个计数器,初始时计数器的数值为 00。

在第 ii 次抛硬币时,根据正反面的结果,会发生以下情况:

  • 如果是正面:高桥君将计数器的数值加 11,并获得 XiX_i 日元。
  • 如果是反面:高桥君将计数器的数值重置为 00,且无法获得金钱。

此外,有 MM 种连续奖励,第 ii 种连续奖励为:每当计数器的数值变为 CiC_i 时,可以获得 YiY_i 日元。

请你求出高桥君最多可以获得多少日元。

输入格式

输入以如下格式从标准输入给出。

NN MM X1X_1 X2X_2 …\ldots XNX_N C1C_1 Y1Y_1 C2C_2 Y2Y_2 ⋮\vdots CMC_M YMY_M

输出格式

请输出高桥君能够获得的最大金额(整数)。

输入输出样例

  • 输入#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≤50001\leq M\leq N\leq 5000
  • 1≤Xi≤1091\leq X_i\leq 10^9
  • 1≤Ci≤N1\leq C_i\leq N
  • 1≤Yi≤1091\leq Y_i\leq 10^9
  • C1,C2,…,CMC_1,C_2,\ldots,C_M 均互不相同。
  • 输入均为整数。

样例解释 1

依次出现正面、正面、反面、正面、正面、正面时,获得的金额如下:

  • 第 11 次抛硬币为正面。计数器从 00 变为 11,获得 22 日元。
  • 第 22 次抛硬币为正面。计数器从 11 变为 22,获得 77 日元,并作为连续奖励获得 1010 日元。
  • 第 33 次抛硬币为反面。计数器从 22 变为 00。
  • 第 44 次抛硬币为正面。计数器从 00 变为 11,获得 88 日元。
  • 第 55 次抛硬币为正面。计数器从 11 变为 22,获得 22 日元,并作为连续奖励获得 1010 日元。
  • 第 66 次抛硬币为正面。计数器从 22 变为 33,获得 88 日元,并作为连续奖励获得 11 日元。

此时高桥君共获得 2+(7+10)+0+8+(2+10)+(8+1)=482+(7+10)+0+8+(2+10)+(8+1)=48 日元,为最大值。

请注意,连续奖励每当计数器数值变为 CiC_i 时都可以获得多次。

顺便一提,若 66 次抛硬币全部为正面,则只能获得 2+(7+10)+(1+1)+8+(2+5)+8=442+(7+10)+(1+1)+8+(2+5)+8=44 日元,不是最大值。

样例解释 2

请注意,答案可能超出 3232 位整数范围。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页