alice和bob在分糖果,目前桌面上共有n堆糖果,每堆糖果的颗数给出。开始分糖果时,首先由alice在所有的糖果堆里面选择一堆,并拿走这堆的所有糖果。接下来二人轮流进行取糖果的操作,每次取糖果的操作都需要遵循以下规则:
-
alice取的第一堆糖果数不能超过MAX
-
选择还存在的一个糖果堆并拿走这堆的所有糖果
-
选择糖果堆中糖果的颗数必须大于上一轮被取走的糖果数
-
选择糖果堆中糖果的颗数与上一轮被取走的糖果数之差不能超过MAX
只要存在还能够选择的糖果堆,就必须进行拿走糖果堆的操作。只有无法进行操作了,才停止这个过程。设alice最终得到的糖果总数为HH,bob最终得到的糖果总数为HP。alice想要最大化HH−HP,bob想要最大化HP−HH。假设他们都采取最优策略,请你计算最终的HP−HH。
n≤1000,每堆糖果数量≤1000
样例:
5 10
12 4 8 9 11
-3
10 1
2 10 9 3 10 5 1 9 10 4
3