AT_abc306_d [ABC306D] Poisonous Full-Course

题目描述

[problemUrl]: https://atcoder.jp/contests/abc306/tasks/abc306_d 高桥君在餐厅里,决定享用由 $N$ 道菜组成的奇妙全套餐。 在这套菜单中,第 $i$ 道菜如下: - 当 $X_i=0$ 时,是美味度为 $Y_i$ 的**含解毒剂**的菜肴。 - 当 $X_i=1$ 时,是美味度为 $Y_i$ 的**含毒**的菜肴。 高桥君在吃菜时,状态会发生如下变化: - 最初,高桥君没有闹肚子。 - 当高桥君**没有闹肚子**时, - 吃**含解毒剂**的菜肴,状态保持**没有闹肚子**。 - 吃**含毒**的菜肴,会**闹肚子**。 - 当高桥君**闹肚子**时, - 吃**含解毒剂**的菜肴,会恢复为**没有闹肚子**。 - 吃**含毒**的菜肴,会**死亡**。 全套餐的流程如下: - 对于 $i=1,\ldots,N$,依次进行以下操作: - 首先,第 $i$ 道菜被端上来。 - 然后,高桥君可以选择“吃”或“让服务员撤下”这道菜。 - 选择“吃”的话,高桥君会吃下第 $i$ 道菜,并根据菜肴类型改变状态。 - 选择“撤下”的话,高桥君不会吃这道菜,且之后也无法再吃或保存这道菜。 - 最后,(若状态发生变化则以变化后的状态为准)只要高桥君没有死亡, - 若 $i\neq N$,则进入下一道菜。 - 若 $i=N$,则高桥君活着离开餐厅。 高桥君之后还有重要的工作,因此他必须活着离开餐厅。 在此条件下,请求出高桥君对每道菜选择“吃”或“撤下”时,**所能获得的美味度总和的最大值**(若什么都不吃,则为 $0$)。

输入格式

输入按以下格式从标准输入给出。 > $N$ > $X_1$ $Y_1$ > $X_2$ $Y_2$ > $\vdots$ > $X_N$ $Y_N$

输出格式

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

说明/提示

### 限制条件 - 输入均为整数。 - $1 \leq N \leq 3 \times 10^5$ - $X_i \in \{0,1\}$ - 即 $X_i$ 只能为 $0$ 或 $1$。 - $-10^9 \leq Y_i \leq 10^9$ ### 样例解释 1 按照如下选择,可以使吃到的美味度总和达到 $600$,这是可能的最大值。 - 第 1 道菜选择撤下。高桥君没有闹肚子。 - 第 2 道菜选择吃。高桥君闹肚子,美味度总和为 $300$。 - 第 3 道菜选择吃。高桥君恢复为没有闹肚子,美味度总和为 $100$。 - 第 4 道菜选择吃。高桥君闹肚子,美味度总和为 $600$。 - 第 5 道菜选择撤下。高桥君闹肚子。 - 最终高桥君没有死亡,活着离开餐厅。 ### 样例解释 2 在此输入下,什么都不吃是最优的,此时答案为 $0$。 ### 样例解释 3 答案可能超出 $32$ 位有符号整数的范围。 由 ChatGPT 4.1 翻译