Quick actions

cmd+k|ctrl+k

Navigation

Languages

ulloa

Snippet info

Language

Python

Visibility

public

Author

scssaluis

Created

2019-03-06T13:14:35Z

Updated

2019-03-06T13:14:35Z



def plucky(A, B, L):
    n = len(A)
    # using -1 since it won't affect "maxes" since A, B elements and L are > 0
    OPA = [-1]*n
    OPB = [-1]*n
    
    OPA[0] = A[0]
    OPA[1] = OPA[0] + A[1]
    OPB[1] = OPA[0] + B[1] - L
    
    for k in range(2, n):
        sbea = OPB[k-1] + A[k] - L
        saea = OPA[k-1] + A[k]
        sbeb = OPB[k-1] + B[k]
        saeb = OPA[k-1] + B[k] - L
        
        OPA[k] = max(sbea, saea)
        OPB[k] = max(sbeb, saeb)
    
    return max(OPA[n-1], OPB[n-1])
    
    
A = [1000, 1, 1]
B = [2, 1000, 1000]
L = 1000
print(plucky(A, B, L))
    
    
    
INFO