Submission #1306875


Source Code Expand

def minimax(a_len,b_len,dp,turn,A,B,a_lis,b_lis):
    # print(dp[a_len][b_len],a_len,b_len)
    if dp[a_len][b_len] != -1:
        return dp[a_len][b_len]
    if turn:
        if a_len < A:
            dp[a_len][b_len] = max(dp[a_len][b_len],a_lis[a_len] + minimax(a_len+1,b_len,dp,0,A,B,a_lis,b_lis))
        if b_len < B:
            dp[a_len][b_len] = max(dp[a_len][b_len],b_lis[b_len] + minimax(a_len,b_len+1,dp,0,A,B,a_lis,b_lis))
    else:
        dp[a_len][b_len] = float("inf")
        if a_len < A:
            dp[a_len][b_len] = min(dp[a_len][b_len],minimax(a_len+1,b_len,dp,1,A,B,a_lis,b_lis))
        if b_len < B:
            dp[a_len][b_len] = min(dp[a_len][b_len],minimax(a_len,b_len+1,dp,1,A,B,a_lis,b_lis))
    return dp[a_len][b_len]
A,B = (int(n) for n in input().split(" "))
dp = [[-1 for n in range(B+1)] for m in range(A + 1)]
a_lis = [int(n) for n in input().split(" ")]
b_lis = [int(n) for n in input().split(" ")]
dp[A][B] = 0
minimax(0,0,dp,1,A,B,a_lis,b_lis)
print(dp[A][B])

Submission Info

Submission Time
Task B - ゲーム
User tomatohakase
Language PyPy3 (2.4.0)
Score 0
Code Size 1025 Byte
Status RE
Exec Time 552 ms
Memory 115036 KB

Judge Result

Set Name All
Score / Max Score 0 / 3
Status
WA × 4
RE × 1
Set Name Test Cases
All 00, 01, 02, 90, 91
Case Name Status Exec Time Memory
00 WA 164 ms 38384 KB
01 WA 552 ms 115036 KB
02 RE 332 ms 66012 KB
90 WA 162 ms 38256 KB
91 WA 164 ms 38256 KB