B. Poisonous Full-Course

    传统题 1000ms 256MiB

Poisonous Full-Course

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

高桥君决定去一家诡异的饭店,享用包含 N N 道菜的套餐。每道菜有两个属性 X,Y X, Y ,含义如下:

  • Xi=0 X_i = 0 表示第 i i 道菜有解毒功效
  • Xi=1 X_i = 1 表示第 i i 道菜有毒
  • Yi Y_i 表示第 i i 道菜的美味程度

高桥君每品尝一道菜,他的身体状况就会发生如下的变化:

  • 起初,高桥君感到舒适
  • 当他感到舒适之时,
    • 如果他吃了一道有解毒功效的菜,他依然会感到舒适
    • 如果他吃了一道有毒的菜,他就会感到不适
  • 当他感到不适之时,
    • 如果他吃了一道有解毒功效的菜,他就然会感到舒适
    • 如果他吃了一道有毒的菜,他就会当场去世

菜是一道一道上的,对于第 i i 道菜,用餐流程如下:

  • 首先,上菜。
  • 然后,高桥君可以选择品尝或选择跳过这道菜。
    • 如果他选择品尝这道菜,他的身体状况就会随着前文提及的规则改变。
    • 如果他选择跳过这道菜,这道菜不会留在餐桌上,之后也不会再上这道菜(即再也吃不到这道菜)。
  • 在做出上述选择后,如果高桥君还活着,
    • 如果 iN i \neq N ,上第 i+1 i + 1 道菜,继续上述流程。
    • 如果 i=N i = N ,高桥君就可以活着走出饭店。

高桥君还有一个重要的会议要开,所以他必须活着走出饭店。

现在,请你求出高桥君所品尝的菜肴的美味程度之和的最大值(如果他什么也不吃,我们认为答案为 0 0 )。

说明/提示

  • 保证输入的数均为整数。
  • 1N3×105 1 \le N \le 3 \times 10^5
  • Xi{0,1} X_i \in \{0, 1\}
    • 也就是说,Xi X_i 要么为 0 0 ,要么为 1 1
  • 109Yi109 -10^9 \le Y_i \le 10^9

样例一解释

对于本组数据,如下的一系列选择可以使得高桥君所品尝的菜肴的美味程度之和达到最大值,即 600 600

  • 他选择跳过第 1 1 道菜,此时他感到舒适。
  • 他选择品尝第 2 2 道菜,此时他感到不适,他所品尝的菜肴的美味程度之和目前为 300 300
  • 他选择品尝第 3 3 道菜,此时他又感到舒适,他所品尝的菜肴的美味程度之和目前为 100 100
  • 他选择品尝第 4 4 道菜,此时他又感到不适,他所品尝的菜肴的美味程度之和目前为 600 600
  • 他选择跳过第 5 5 道菜,此时他仍感到不适。
  • 虽然他最后感到不适,但他还是活着走出了饭店。

样例二解释

对于本组数据,高桥君可以选择什么也不吃,故答案为 0 0

样例三解释

答案可能超出 32 32 位整数的范围。

题目描述

高橋くんはレストランで、 N N 品からなる奇妙なフルコースを楽しむことにしました。 このコースのうち i i 番目の料理は以下の通りです。

  • Xi=0 X_i=0 の場合、美味しさが Yi Y_i 解毒剤入り の料理
  • Xi=1 X_i=1 の場合、美味しさが Yi Y_i 毒入り の料理

高橋くんが料理を食べると、高橋くんの状態は以下のように変化します。

  • 最初、高橋くんはお腹を壊していない。
  • 高橋くんが お腹を壊していない 時、
    • 解毒剤入り の料理を食べても、高橋くんは お腹を壊していないまま である。
    • 毒入り の料理を食べると、高橋くんは お腹を壊す
  • 高橋くんが お腹を壊している 時、
    • 解毒剤入り の料理を食べると、高橋くんは お腹を壊していない状態になる
    • 毒入り の料理を食べると、高橋くんは 死ぬ

コースは以下の流れで進行します。

  • i = 1, , N i\ =\ 1,\ \ldots,\ N についてこの順に、以下の処理を繰り返す。
    • まず、 i i 番目の料理が高橋くんに提供される。
    • 次に、 高橋くんはこの料理に対し「食べる」か「下げてもらう」かを選択する。
      • 「食べる」を選択した場合、高橋くんは i i 番目の料理を食べる。食べた料理に応じて高橋くんの状態も変化する。
      • 「下げてもらう」を選択した場合、高橋くんは i i 番目の料理を食べない。この料理を後で提供してもらったり何らかの手段で保存したりすることはできない。
    • 最後に、 (状態が変化するなら変化後の時点で) 高橋くんが死んでいない場合、
      • i  N i\ \neq\ N なら次の料理に進む。
      • i = N i\ =\ N なら高橋くんは生きて退店する。

高橋くんはこのあと重要な仕事があるため、高橋くんは生きて退店しなければなりません。 この条件の下で高橋くんが各料理に対し「食べる」「下げてもらう」を選択したとき、高橋くんが 食べた料理の美味しさの総和として考えられる最大値 ( 但し、何も食べなかった場合は 0 0 ) を出力してください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N X1 X_1 Y1 Y_1 X2 X_2 Y2 Y_2 \vdots XN X_N YN Y_N

输出格式

答えを整数として出力せよ。

样例 #1

样例输入 #1

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

样例输出 #1

600

样例 #2

样例输入 #2

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

样例输出 #2

0

样例 #3

样例输入 #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 × 105 1\ \le\ N\ \le\ 3\ \times\ 10^5
  • Xi  {0,1} X_i\ \in\ \{0,1\}
    • つまり、 Xi X_i 0,1 0,1 のどちらかである。
  • 109  Yi  109 -10^9\ \le\ Y_i\ \le\ 10^9

Sample Explanation 1

以下のように選択することで食べた料理の美味しさの総和を 600 600 にでき、これが考えられる最大値です。 - 1 1 番目の料理を下げてもらう。高橋くんはお腹を壊していません。 - 2 2 番目の料理を食べる。高橋くんはお腹を壊し、食べた料理の美味しさの総和は 300 300 となります。 - 3 3 番目の料理を食べる。高橋くんはお腹を壊していない状態に戻り、食べた料理の美味しさの総和は 100 100 となります。 - 4 4 番目の料理を食べる。高橋くんはお腹を壊し、食べた料理の美味しさの総和は 600 600 となります。 - 5 5 番目の料理を下げてもらう。高橋くんはお腹を壊しています。 - 最終的に高橋くんは死んでいないので、高橋くんは生きて退店する。

Sample Explanation 2

この入力の場合何も食べないことが最善ですが、この場合答えは 0 0 となります。

Sample Explanation 3

答えが 32 32 bit 符号付き整数に収まらない可能性があります。

基础DP4-线性DP进阶

未认领
状态
已结束
题目
7
开始时间
2024-11-25 0:00
截止时间
2024-12-4 23:59
可延期
24 小时