A54980.取石子(双端版)

普及/提高-

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

太郎和二郎将进行以下博弈。

最初,他们面前有 NN 堆石子排成一排,每堆石子有 aia_i 个 。在取完所有石子之前,两位选手从太郎开始交替执行以下操作:

  • 取走开头或结尾的一堆石子。选手获得 xx 分,其中 xx 是被移除的石子的个数。

假设 XXYY 分别是太郎和二郎在游戏结束时的总得分。太郎试图最大化 XYX - Y ,而二郎试图最小化 XYX - Y

假设两位选手的选法都是最优的,请求出 XYX - Y 的结果值。

限制因素

  • 所有输入值均为整数。
  • 1N30001 \leq N \leq 3000
  • 1ai1091 \leq a_i \leq 10^9

输入格式

输入内容由标准输入法提供,格式如下:

NN
a1a_1 a2a_2 \ldots aNa_N

输出格式

打印 XYX - Y 的结果值,假定两位选手以最佳方式取石子。

输入输出样例

  • 输入#1

    4
    10 80 90 30
    

    输出#1

    10
    
  • 输入#2

    3
    10 100 10
    

    输出#2

    -80
    
  • 输入#3

    1
    10
    

    输出#3

    10
    
  • 输入#4

    10
    1000000000 1 1000000000 1 1000000000 1 1000000000 1 1000000000 1
    

    输出#4

    4999999995
    
  • 输入#5

    6
    4 2 9 7 1 5
    

    输出#5

    2
    
首页