Python Runtime error with exit code -1073741571 (0xC00000FD)

0

I have written a program for the question Domino Solitaire on CODECHEF in python. If I take number of columns greater than 2920 then this runtime error shows -

Process finished with exit code -1073741571 (0xC00000FD)

But my program works well for lesser number of columns.

Here is my code -

import sys
sys.setrecursionlimit(10000)

def vs(i):
    return abs(row1[i] - row2[i])    

def hs(i):
    return abs(row1[i] - row1[i+1]) + abs(row2[i] - row2[i+1])

n = int(input())

row1 = list(map(int, input().split()))
row2 = list(map(int, input().split()))

memoiz = [[-1, -1] for x in range(n)]

def tileit(i=0):
    if i == (n-2):
        memoiz[i][0] = vs(i) + vs(i+1)
        memoiz[i][1] = hs(i)
        return max(memoiz[i][0], memoiz[i][1])
    elif i == (n-1):
        memoiz[i][0] = vs(i)
        return memoiz[i][0]

    if memoiz[i][0] != -1:
        max_vs = memoiz[i][0]
    else:
        max_vs = vs(i) + tileit(i+1)
        memoiz[i][0] = max_vs

    if memoiz[i][1] != -1:
        max_hs = memoiz[i][1]
    else:
        max_hs = hs(i) + tileit(i+2)
        memoiz[i][1] = max_hs

    return max(max_vs, max_hs)

print(tileit())

The memoiz list store the maximum vertical score and horizontal score possible from ith tile (starting from 0)

vs(i) calculates the vertical tile score of ith tile

hs(i) calculates the horizontal tile score of ith tile

If I add print(i) inside the tileit() function on its first line then it prints upto 2919 and then stops for a moment and shows this error.

python
runtime-error
asked on Stack Overflow Oct 31, 2018 by Rohit Kumar

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0