Submission #3973822


Source Code Expand

N = int(input())
*A, = map(int, input().split())

INF = 10**18
S = [0]*(N+1)
for i in range(N):
    S[i+1] = S[i] + A[i]
dp = [[0]*(N+1) for i in range(N+1)]
for k in range(2, N+1):
    for i in range(N-k+1):
        dp[i][k] = min(dp[i][j] + dp[i+j][k-j] for j in range(1, k)) + S[i+k] - S[i]
print(dp[0][N])

Submission Info

Submission Time
Task N - Slimes
User yaketake08
Language PyPy3 (2.4.0)
Score 100
Code Size 322 Byte
Status AC
Exec Time 569 ms
Memory 43612 KiB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 16
Set Name Test Cases
All 0_00, 0_01, 0_02, 0_03, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11
Case Name Status Exec Time Memory
0_00 AC 168 ms 38256 KiB
0_01 AC 169 ms 38256 KiB
0_02 AC 167 ms 38256 KiB
0_03 AC 168 ms 38256 KiB
1_00 AC 168 ms 38256 KiB
1_01 AC 472 ms 43612 KiB
1_02 AC 509 ms 43228 KiB
1_03 AC 569 ms 43228 KiB
1_04 AC 520 ms 43228 KiB
1_05 AC 517 ms 43100 KiB
1_06 AC 488 ms 43484 KiB
1_07 AC 493 ms 43100 KiB
1_08 AC 467 ms 43100 KiB
1_09 AC 489 ms 42972 KiB
1_10 AC 494 ms 42996 KiB
1_11 AC 473 ms 43100 KiB