#joi2015yof. [joi2015yo_f]財宝 (Treasures)

[joi2015yo_f]財宝 (Treasures)

问题

盗贼 Anna 和 Bruno 偷进了一位大富豪的豪宅,发现了从宝藏 11 到宝藏 NNNN 个宝藏。现在他们需要将这些宝藏分配给 Anna 和 Bruno。Anna 可以拿走其中的一部分宝藏,而 Bruno 则可以拿走剩下的一部分。同一个宝藏不能被两个人同时拿走。Anna 和 Bruno 都可以选择不拿走任何宝藏。另外,剩下的宝藏将留在豪宅中,所以两个人都可以选择不拿走剩下的宝藏。

每个宝藏都有两个属性:“市场价值”和“珍贵度”。如果 Anna 拿走的宝藏的市场价值总和与 Bruno 拿走的宝藏的市场价值总和之差的绝对值不超过 DD,那么 Anna 将会感到满意。而 Bruno 则希望拥有比 Anna 更高珍贵度的宝藏。

求在 Anna 满意的情况下,最大化 Bruno 拿走的宝藏的珍贵度总和减去 Anna 拿走的宝藏的珍贵度总和的值。


输入

输入由 1+N1 + N 行组成。

11 行包含两个整数 NNDD (1N301 \leq N \leq 300D10150 \leq D \leq 10^{15}),以空格分隔。表示宝藏的数量为 NN,如果 Anna 拿走的宝藏的市场价值总和与 Bruno 拿走的宝藏的市场价值总和之差的绝对值不超过 DD,则 Anna 将会感到满意。

接下来的 NN 行中,第 ii 行 (1iN1 \leq i \leq N) 包含两个整数 XiX_iYiY_i (0Xi10150 \leq X_i \leq 10^{15}0Yi10150 \leq Y_i \leq 10^{15}),以空格分隔。表示宝藏 ii 的市场价值为 XiX_i,珍贵度为 YiY_i

在给定的 55 个输入数据中,第一个输入满足 N10N \leq 10,第二个输入满足 D=0D = 0

输出

输出一行,表示在 Anna 满意的情况下,最大化 Bruno 拿走的宝藏的珍贵度总和减去 Anna 拿走的宝藏的珍贵度总和的值。


示例 1

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

输出示例 1

1200

在示例 11 中,如果 Anna 拿走宝藏 223355,Bruno 拿走宝藏 1166,那么他们拿到的宝藏的市场价值总和分别为 Anna 的 130130 和 Bruno 的 120120,差的绝对值为 1010,小于等于 D=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