D - Poisonous Full-Course 解説 /

実行時間制限: 2 sec / メモリ制限: 1024 MB

配点 : 400400

問題文

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

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

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

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

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

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

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

制約

  • 入力は全て整数
  • 1N3×1051 \le N \le 3 \times 10^5
  • Xi{0,1}X_i \in \{0,1\}
    • つまり、 XiX_i0,10,1 のどちらかである。
  • 109Yi109-10^9 \le Y_i \le 10^9

入力

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

NN
X1X_1 Y1Y_1
X2X_2 Y2Y_2
\vdots
XNX_N YNY_N

出力

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


入力例 1Copy

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

出力例 1Copy

Copy
600

以下のように選択することで食べた料理の美味しさの総和を 600600 にでき、これが考えられる最大値です。

  • 11 番目の料理を下げてもらう。高橋くんはお腹を壊していません。
  • 22 番目の料理を食べる。高橋くんはお腹を壊し、食べた料理の美味しさの総和は 300300 となります。
  • 33 番目の料理を食べる。高橋くんはお腹を壊していない状態に戻り、食べた料理の美味しさの総和は 100100 となります。
  • 44 番目の料理を食べる。高橋くんはお腹を壊し、食べた料理の美味しさの総和は 600600 となります。
  • 55 番目の料理を下げてもらう。高橋くんはお腹を壊しています。
  • 最終的に高橋くんは死んでいないので、高橋くんは生きて退店する。

入力例 2Copy

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

出力例 2Copy

Copy
0

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


入力例 3Copy

Copy
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

出力例 3Copy

Copy
4100000000

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

Score : 400400 points

Problem Statement

Takahashi has decided to enjoy a wired full-course meal consisting of NN courses in a restaurant.
The ii-th course is:

  • if Xi=0X_i=0, an antidotal course with a tastiness of YiY_i;
  • if Xi=1X_i=1, a poisonous course with a tastiness of YiY_i.

When Takahashi eats a course, his state changes as follows:

  • Initially, Takahashi has a healthy stomach.
  • When he has a healthy stomach,
    • if he eats an antidotal course, his stomach remains healthy;
    • if he eats a poisonous course, he gets an upset stomach.
  • When he has an upset stomach,
    • if he eats an antidotal course, his stomach becomes healthy;
    • if he eats a poisonous course, he dies.

The meal progresses as follows.

  • Repeat the following process for i=1,,Ni = 1, \ldots, N in this order.
    • First, the ii-th course is served to Takahashi.
    • Next, he chooses whether to "eat" or "skip" the course.
      • If he chooses to "eat" it, he eats the ii-th course. His state also changes depending on the course he eats.
      • If he chooses to "skip" it, he does not eat the ii-th course. This course cannot be served later or kept somehow.
    • Finally, (if his state changes, after the change) if he is not dead,
      • if iNi \neq N, he proceeds to the next course.
      • if i=Ni = N, he makes it out of the restaurant alive.

An important meeting awaits him, so he must make it out of there alive.
Find the maximum possible sum of tastiness of the courses that he eats (or 00 if he eats nothing) when he decides whether to "eat" or "skip" the courses under that condition.

Constraints

  • All input values are integers.
  • 1N3×1051 \le N \le 3 \times 10^5
  • Xi{0,1}X_i \in \{0,1\}
    • In other words, XiX_i is either 00 or 11.
  • 109Yi109-10^9 \le Y_i \le 10^9

Input

The input is given from Standard Input in the following format:

NN
X1X_1 Y1Y_1
X2X_2 Y2Y_2
\vdots
XNX_N YNY_N

Output

Print the answer as an integer.


Sample Input 1Copy

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

Sample Output 1Copy

Copy
600

The following choices result in a total tastiness of the courses that he eats amounting to 600600, which is the maximum possible.

  • He skips the 11-st course. He now has a healthy stomach.
  • He eats the 22-nd course. He now has an upset stomach, and the total tastiness of the courses that he eats amounts to 300300.
  • He eats the 33-rd course. He now has a healthy stomach again, and the total tastiness of the courses that he eats amounts to 100100.
  • He eats the 44-th course. He now has an upset stomach, and the total tastiness of the courses that he eats amounts to 600600.
  • He skips the 55-th course. He now has an upset stomach.
  • In the end, he is not dead, so he makes it out of the restaurant alive.

Sample Input 2Copy

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

Sample Output 2Copy

Copy
0

For this input, it is optimal to eat nothing, in which case the answer is 00.


Sample Input 3Copy

Copy
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

Sample Output 3Copy

Copy
4100000000

The answer may not fit into a 3232-bit integer type.



2023-09-24 (日)
19:11:14 +00:00