atcoder#DPL. Deque
Deque
配点 : 点
問題文
太郎君と次郎君が次のゲームで勝負します。
最初に、数列 が与えられます。 が空になるまで、二人は次の操作を交互に行います。 先手は太郎君です。
- の先頭要素または末尾要素を取り除く。 取り除いた要素を とすると、操作を行った人は 点を得る。
ゲーム終了時の太郎君の総得点を 、次郎君の総得点を とします。 太郎君は を最大化しようとし、次郎君は を最小化しようとします。
二人が最適に行動すると仮定したとき、 を求めてください。
制約
- 入力はすべて整数である。
入力
入力は以下の形式で標準入力から与えられる。
出力
二人が最適に行動すると仮定したとき、 を出力せよ。
4
10 80 90 30
10
二人が最適に行動すると、次のように操作が行われます。 操作対象の要素を太字で表しています。
- 先手: (10, 80, 90, 30) → (10, 80, 90)
- 後手: (10, 80, 90) → (10, 80)
- 先手: (10, 80) → (10)
- 後手: (10) → ()
このとき、, となります。
3
10 100 10
-80
二人が最適に行動すると、例えば次のように操作が行われます。
- 先手: (10, 100, 10) → (100, 10)
- 後手: (100, 10) → (10)
- 先手: (10) → ()
このとき、, となります。
1
10
10
10
1000000000 1 1000000000 1 1000000000 1 1000000000 1 1000000000 1
4999999995
答えは 32-bit 整数型に収まらない場合があります。
6
4 2 9 7 1 5
2
二人が最適に行動すると、例えば次のように操作が行われます。
- 先手: (4, 2, 9, 7, 1, 5) → (4, 2, 9, 7, 1)
- 後手: (4, 2, 9, 7, 1) → (2, 9, 7, 1)
- 先手: (2, 9, 7, 1) → (2, 9, 7)
- 後手: (2, 9, 7) → (2, 9)
- 先手: (2, 9) → (2)
- 後手: (2) → ()
このとき、, となります。