#joi2015yof. [joi2015yo_f]財宝 (Treasures)

[joi2015yo_f]財宝 (Treasures)

問題

盗賊の 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 (1leqqNleqq301 \\leqq N \\leqq 300leqqDleqq10150 \\leqq D \\leqq 10^{15}) が空白を区切りとして書かれている.これは,財宝の個数が NN 個であり,Anna が取った財宝の市場価値の合計と Bruno が取った財宝の市場価値の合計の差の絶対値が DD 以下なら Anna が満足することを表す.

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

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

出力

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


入力例 1

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

出力例 1

1200

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


入力例 2

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

出力例 2

2000000000000000