AT_abc306_d.[ABC306D] Poisonous Full-Course

普及-

通过率:0%

AC君温馨提醒

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

题目描述

高桥君在餐厅里,决定享用由 NN 道菜组成的奇妙全套餐。
在这套菜单中,第 ii 道菜如下:

  • 当 Xi=0X_i=0 时,是美味度为 YiY_i 的含解毒剂的菜肴。
  • 当 Xi=1X_i=1 时,是美味度为 YiY_i 的含毒的菜肴。

高桥君在吃菜时,状态会发生如下变化:

  • 最初,高桥君没有闹肚子。
  • 当高桥君没有闹肚子时,
    • 吃含解毒剂的菜肴,状态保持没有闹肚子。
    • 吃含毒的菜肴,会闹肚子。
  • 当高桥君闹肚子时,
    • 吃含解毒剂的菜肴,会恢复为没有闹肚子。
    • 吃含毒的菜肴,会死亡。

全套餐的流程如下:

  • 对于 i=1,…,Ni=1,\ldots,N,依次进行以下操作:
    • 首先,第 ii 道菜被端上来。
    • 然后,高桥君可以选择“吃”或“让服务员撤下”这道菜。
      • 选择“吃”的话,高桥君会吃下第 ii 道菜,并根据菜肴类型改变状态。
      • 选择“撤下”的话,高桥君不会吃这道菜,且之后也无法再吃或保存这道菜。
    • 最后,(若状态发生变化则以变化后的状态为准)只要高桥君没有死亡,
      • 若 i≠Ni\neq N,则进入下一道菜。
      • 若 i=Ni=N,则高桥君活着离开餐厅。

高桥君之后还有重要的工作,因此他必须活着离开餐厅。
在此条件下,请求出高桥君对每道菜选择“吃”或“撤下”时,所能获得的美味度总和的最大值(若什么都不吃,则为 00)。

输入格式

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

NN
X1X_1 Y1Y_1
X2X_2 Y2Y_2
⋮\vdots
XNX_N YNY_N

输出格式

请输出一个整数,表示答案。

输入输出样例

  • 输入#1

    5
    1 100
    1 300
    0 -200
    1 500
    1 300

    输出#1

    600
  • 输入#2

    4
    0 -1
    1 -2
    0 -3
    1 -4

    输出#2

    0
  • 输入#3

    15
    1 900000000
    0 600000000
    1 -300000000
    0 -700000000
    1 200000000
    1 300000000
    0 -600000000
    1 -900000000
    1 600000000
    1 -100000000
    1 -400000000
    0 900000000
    0 200000000
    1 -500000000
    1 900000000

    输出#3

    4100000000

说明/提示

限制条件

  • 输入均为整数。
  • 1≤N≤3×1051 \leq N \leq 3 \times 10^5
  • Xi∈{0,1}X_i \in \{0,1\}
    • 即 XiX_i 只能为 00 或 11。
  • −109≤Yi≤109-10^9 \leq Y_i \leq 10^9

样例解释 1

按照如下选择,可以使吃到的美味度总和达到 600600,这是可能的最大值。

  • 第 1 道菜选择撤下。高桥君没有闹肚子。
  • 第 2 道菜选择吃。高桥君闹肚子,美味度总和为 300300。
  • 第 3 道菜选择吃。高桥君恢复为没有闹肚子,美味度总和为 100100。
  • 第 4 道菜选择吃。高桥君闹肚子,美味度总和为 600600。
  • 第 5 道菜选择撤下。高桥君闹肚子。
  • 最终高桥君没有死亡,活着离开餐厅。

样例解释 2

在此输入下,什么都不吃是最优的,此时答案为 00。

样例解释 3

答案可能超出 3232 位有符号整数的范围。

由 ChatGPT 4.1 翻译

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

首页