Deque

AtCoder
IDdp_l
Time2000ms
Memory256MB
Difficulty
Taro and Jiro will play the following game against each other. Initially, they are given a sequence $a = (a_1, a_2, \ldots, a_N)$. Until $a$ becomes empty, the two players perform the following operation alternately, starting from Taro: * Remove the element at the beginning or the end of $a$. The player earns $x$ points, where $x$ is the removed element. Let $X$ and $Y$ be Taro's and Jiro's total score at the end of the game, respectively. Taro tries to maximize $X - Y$, while Jiro tries to minimize $X - Y$. Assuming that the two players play optimally, find the resulting value of $X - Y$. ## Constraints * All values in input are integers. * $1 \leq N \leq 3000$ * $1 \leq a_i \leq 10^9$ ## Input Input is given from Standard Input in the following format: $N$ $a_1$ $a_2$ $\ldots$ $a_N$ [samples]
Samples
Input #1
4
10 80 90 30
Output #1
10

The game proceeds as follows when the two players play optimally (the element being removed is written bold):

*   Taro: (10, 80, 90, **30**) → (10, 80, 90)
*   Jiro: (10, 80, **90**) → (10, 80)
*   Taro: (10, **80**) → (10)
*   Jiro: (**10**) → ()

Here, $X = 30 + 80 = 110$ and $Y = 90 + 10 = 100$.
Input #2
3
10 100 10
Output #2
\-80

The game proceeds, for example, as follows when the two players play optimally:

*   Taro: (**10**, 100, 10) → (100, 10)
*   Jiro: (**100**, 10) → (10)
*   Taro: (**10**) → ()

Here, $X = 10 + 10 = 20$ and $Y = 100$.
Input #3
1
10
Output #3
10
Input #4
10
1000000000 1 1000000000 1 1000000000 1 1000000000 1 1000000000 1
Output #4
4999999995

The answer may not fit into a 32-bit integer type.
Input #5
6
4 2 9 7 1 5
Output #5
2

The game proceeds, for example, as follows when the two players play optimally:

*   Taro: (4, 2, 9, 7, 1, **5**) → (4, 2, 9, 7, 1)
*   Jiro: (**4**, 2, 9, 7, 1) → (2, 9, 7, 1)
*   Taro: (2, 9, 7, **1**) → (2, 9, 7)
*   Jiro: (2, 9, **7**) → (2, 9)
*   Taro: (2, **9**) → (2)
*   Jiro: (**2**) → ()

Here, $X = 5 + 1 + 9 = 15$ and $Y = 4 + 7 + 2 = 13$.
API Response (JSON)
{
  "problem": {
    "name": "Deque",
    "description": {
      "content": "Taro and Jiro will play the following game against each other. Initially, they are given a sequence $a = (a_1, a_2, \\ldots, a_N)$. Until $a$ becomes empty, the two players perform the following operat",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "dp_l"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Taro and Jiro will play the following game against each other.\nInitially, they are given a sequence $a = (a_1, a_2, \\ldots, a_N)$. Until $a$ becomes empty, the two players perform the following operat...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments