Question: 
Write a function to solve gold mine problem.


Model's Code:
def get_maxgold(gold, m, n):
    dp = [[0 for _ in range(n)] for _ in range(m)]
    
    for j in range(n):
        dp[0][j] = dp[0][j-1] + gold[0][j] if j > 0 else gold[0][j]

    for i in range(1, m):
        for j in range(n):
            left = dp[i-1][j-1] if j > 0 else 0
            up = dp[i-1][j]
            right = dp[i-1][j+1] if j < n-1 else 0
            dp[i][j] = gold[i][j] + max(left, up, right)
    
    return max(dp[m-1])



Sample Correct Code:
def get_maxgold(gold, m, n): 
    goldTable = [[0 for i in range(n)] 
                        for j in range(m)]   
    for col in range(n-1, -1, -1): 
        for row in range(m):  
            if (col == n-1): 
                right = 0
            else: 
                right = goldTable[row][col+1] 
            if (row == 0 or col == n-1): 
                right_up = 0
            else: 
                right_up = goldTable[row-1][col+1] 
            if (row == m-1 or col == n-1): 
                right_down = 0
            else: 
                right_down = goldTable[row+1][col+1] 
            goldTable[row][col] = gold[row][col] + max(right, right_up, right_down) 
    res = goldTable[0][0] 
    for i in range(1, m): 
        res = max(res, goldTable[i][0])  
    return res 


Asserts:
assert get_maxgold([[1, 3, 1, 5],[2, 2, 4, 1],[5, 0, 2, 3],[0, 6, 1, 2]],4,4)==16
assert get_maxgold([[10,20],[30,40]],2,2)==70
assert get_maxgold([[4,9],[3,7]],2,2)==13


Tests:
Test 1 of 3: FAIL: AssertionError()

Test 423 of 974: 308/423 (72.81323877068559%): failed