atcoder#ABC303G. [ABC303G] Bags Game

[ABC303G] Bags Game

配点 : 550550

問題文

NN 個の袋が左右一列に並んでいて、左から ii 番目の袋には xix_i 円が入っています。

十分多くのお金を持っている高橋君と青木君が、高橋君を先手として交互に次の操作をします。

  • 以下の 33 種類の操作のうち 11 つを選んで行う。- 右端または左端の袋を 11 個選んで取る。
    • AA 円をすぬけ君に支払う。そして、「右端または左端の袋を 11 個選んで取る」という操作を min(B,n)\min(B,n) (nn は残っている袋の個数) 回繰り返す。
    • CC 円をすぬけ君に支払う。そして、「右端または左端の袋を 11 個選んで取る」という操作を min(D,n)\min(D,n) (nn は残っている袋の個数) 回繰り返す。
  • 右端または左端の袋を 11 個選んで取る。
  • AA 円をすぬけ君に支払う。そして、「右端または左端の袋を 11 個選んで取る」という操作を min(B,n)\min(B,n) (nn は残っている袋の個数) 回繰り返す。
  • CC 円をすぬけ君に支払う。そして、「右端または左端の袋を 11 個選んで取る」という操作を min(D,n)\min(D,n) (nn は残っている袋の個数) 回繰り返す。

残っている袋が無くなった時点での高橋君の利得を「(高橋君が取った袋に入っている金額の総和) - (高橋君がすぬけ君に支払った金額の総和)」とし、これを XX 円とします。また、青木君の利得についても同様に定め、YY 円とします。

高橋君が XYX-Y を最大化、青木君が XYX-Y を最小化することを目的に最適な操作をしたときの XYX-Y を求めてください。

制約

  • 1N30001 \leq N \leq 3000
  • 1xi1091 \leq x_i \leq 10^9
  • 1A,C1091 \leq A,C \leq 10^9
  • 1B,DN1 \leq B,D \leq N
  • 入力はすべて整数

入力

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

NN AA BB CC DD

x1x_1 x2x_2 \ldots xNx_N

出力

答えを出力せよ。

5 10 2 1000000000 1
1 100 1 1 1
90

高橋君と青木君が最適な操作をしたとき、X=92,Y=2X=92, Y=2 となります。

10 45 3 55 4
5 10 15 20 25 30 35 40 45 50
85
15 796265 10 165794055 1
18804175 185937909 1934689 18341 68370722 1653 1 2514380 31381214 905 754483 11 5877098 232 31600
302361955