F - 財宝 (Treasures) Editorial

Time Limit: 10 sec / Memory Limit: 1024 MB

配点: 100100

問題

盗賊の Anna と Bruno は大富豪の邸宅に忍び込み,財宝 11 から財宝 NN までの NN 個の財宝を見つけた.これらの財宝を Anna と Bruno で分配することになった.財宝のうちのいくつかを Anna が取り,残りの財宝のうちのいくつかを Bruno が取る.同じ財宝を 22 人が取ることはできない.Anna や Bruno は財宝を 11 個も取らなくてもよい.また,残った財宝は邸宅に残しておくので,22 人とも取らない財宝があってもよい.

それぞれの財宝には「市場価値」と「貴重度」という 22 つの値が定まっている.Anna が取った財宝の市場価値の合計と Bruno が取った財宝の市場価値の合計の差の絶対値が DD 以下なら,Anna は公平だと思って満足する.一方,Bruno は,Anna より貴重度の大きい財宝が欲しいと思っている.

Anna が満足するように財宝を分配したときの,Bruno が取った財宝の貴重度の合計から Anna が取った財宝の貴重度の合計を引いた値の最大値を求めよ.


入力

入力は 1+N1 + N 行からなる.

11 行目には,22 つの整数 N,DN, D (1N301 \leqq N \leqq 300D10150 \leqq D \leqq 10^{15}) が空白を区切りとして書かれている.これは,財宝の個数が NN 個であり,Anna が取った財宝の市場価値の合計と Bruno が取った財宝の市場価値の合計の差の絶対値が DD 以下なら Anna が満足することを表す.

続く NN 行のうちの ii 行目 (1iN1 \leqq i \leqq N) には,22 つの整数 Xi,YiX_i, Y_i (0Xi10150 \leqq X_i \leqq 10^{15}0Yi10150 \leqq Y_i \leqq 10^{15}) が空白を区切りとして書かれている.これは,財宝 ii の市場価値が XiX_i であり,貴重度が YiY_i であることを表す.

与えられる 55 つの入力データのうち,入力 11 では N10N \leqq 10 を満たす.また,入力 22 では D=0D = 0 を満たす.

出力

Anna が満足するように財宝を分配したときの,Bruno が取った財宝の貴重度の合計から Anna が取った財宝の貴重度の合計を引いた値の最大値を 11 行で出力せよ.


入力例 1Copy

Copy
6 15
50 900
30 200
40 100
80 600
60 100
70 700

出力例 1Copy

Copy
1200

入出力例 11 においては,Anna が財宝 22 と財宝 33 と財宝 55 を取り,Bruno が財宝 11 と財宝 66 を取ると,取った財宝の市場価値の合計は Anna が 130130,Bruno が 120120 となり,差の絶対値 1010D=15D = 15 以下なので Anna は満足する.このとき,取った財宝の貴重度の合計は Anna が 400400,Bruno が 16001\,600 となり,Bruno が取った財宝の貴重度の合計から Anna が取った財宝の貴重度の合計を引いた値は 12001\,200 となる.これが最大である.


入力例 2Copy

Copy
5 0
0 1000000000000000
0 1000000000000000
1 1
1000000000000000 0
1000000000000000 0

出力例 2Copy

Copy
2000000000000000


2025-04-06 (Sun)
13:01:33 +00:00