提出 #3973573


ソースコード 拡げる

N = int(input())
*A, = map(int, input().split())
dp = [[-1]*(N+1-i) for i in range(N+1)]
for i in range(N+1):
    dp[0][i] = 0
t = (N & 1)
for l in range(1, N+1):
    S = dp[l-1]; T = dp[l]
    t ^= 1
    if t:
        T[:] = (min(S[i+1] - A[i], S[i] - A[i+l-1]) for i in range(N-l+1))
    else:
        T[:] = (max(S[i+1] + A[i], S[i] + A[i+l-1]) for i in range(N-l+1))
print(dp[N][0])

提出情報

提出日時
問題 L - Deque
ユーザ yaketake08
言語 PyPy3 (2.4.0)
得点 100
コード長 399 Byte
結果 AC
実行時間 473 ms
メモリ 85852 KiB

ジャッジ結果

セット名 All
得点 / 配点 100 / 100
結果
AC × 19
セット名 テストケース
All 0_00, 0_01, 0_02, 0_03, 0_04, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13
ケース名 結果 実行時間 メモリ
0_00 AC 171 ms 38256 KiB
0_01 AC 173 ms 38256 KiB
0_02 AC 169 ms 38384 KiB
0_03 AC 171 ms 38256 KiB
0_04 AC 166 ms 38256 KiB
1_00 AC 167 ms 38256 KiB
1_01 AC 167 ms 38256 KiB
1_02 AC 464 ms 85852 KiB
1_03 AC 409 ms 81500 KiB
1_04 AC 434 ms 82012 KiB
1_05 AC 435 ms 82012 KiB
1_06 AC 463 ms 83292 KiB
1_07 AC 473 ms 83036 KiB
1_08 AC 462 ms 82780 KiB
1_09 AC 465 ms 83036 KiB
1_10 AC 458 ms 82780 KiB
1_11 AC 461 ms 83036 KiB
1_12 AC 458 ms 82908 KiB
1_13 AC 458 ms 82652 KiB