atcoder#NIKKEI2019QUALC. Different Strokes

Different Strokes

配点 : 400400

問題文

高橋くんと青木さんの前に NN 皿の料理が置かれています。 便宜上、これらの料理を料理 11、料理 22、…、料理 NN と呼びます。

高橋くんが料理 ii を食べると彼は AiA_i ポイントの 幸福度 を得ます。 また、青木さんが料理 ii を食べると彼女は BiB_i ポイントの幸福度を得ます。

彼らは、高橋くんから始めて交互に、料理を 11 皿ずつ選んで食べることを料理が尽きるまで続けます。 ただし、彼らはともに、「最終的に自分が得る幸福度の総和」から「最終的に相手が得る幸福度の総和」を引いた値を最大化するように料理を選びます。

このとき、「最終的に高橋くんが得る幸福度の総和」から「最終的に青木さんが得る幸福度の総和」を引いた値はいくつになるでしょうか?

制約

  • 1N1051 \leq N \leq 10^5
  • 1Ai1091 \leq A_i \leq 10^9
  • 1Bi1091 \leq B_i \leq 10^9
  • 入力される値はすべて整数である。

入力

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

NN

A1A_1 B1B_1

::

ANA_N BNB_N

出力

「最終的に高橋くんが得る幸福度の総和」から「最終的に青木さんが得る幸福度の総和」を引いた値を出力せよ。

3
10 10
20 20
30 30
20

この例では、二人のどちらも、料理 11 を食べると 1010 ポイント、料理 22 を食べると 2020 ポイント、料理 33 を食べると 3030 ポイントの幸福度を得ます。

この場合、高橋くんと青木さんの「好み」が一致しているため、彼らは毎回残っている料理のうち最も幸福度を多く得られる料理を選びます。よって、最初に高橋くんは料理 33 を選び、次に青木さんは料理 22 を選び、最後に高橋くんが料理 11 を選ぶため、答えは (30+10)20=20(30 + 10) - 20 = 20 です。

3
20 10
20 20
20 30
20

この例では、高橋くんは料理 1,2,31,2,3 のいずれを食べても 2020 ポイントの幸福度を得ますが、青木さんは料理 11 を食べると 1010 ポイント、料理 22 を食べると 2020 ポイント、料理 33 を食べると 3030 ポイントの幸福度を得ます。

今回は、青木さんのみに料理の好き嫌いがあるため、彼らは毎回残っている料理のうち青木さんが最も幸福度を多く得られる料理を選びます。よって、最初に高橋くんは料理 33 を選び、次に青木さんは料理 22 を選び、最後に高橋くんが料理 11 を選ぶため、答えは (20+20)20=20(20 + 20) - 20 = 20 です。

6
1 1000000000
1 1000000000
1 1000000000
1 1000000000
1 1000000000
1 1000000000
-2999999997

答えは 3232 ビット整数に収まらない可能性があります。