退出代码为-1073741571(0xC00000FD)的Python运行时错误

时间:2018-10-31 05:08:53

标签: python runtime-error

我已经用python在CODECHEF上为问题Domino Solitaire编写了一个程序。如果我的列数大于2920,则此运行时错误显示-

进程结束,退出代码为-1073741571(0xC00000FD)

但是我的程序在较少的列数下运行良好。

这是我的代码-

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())

memoiz列表存储第i个图块(从0开始)可能的最大垂直得分和水平得分

vs(i)计算第i个图块的垂直图块得分

hs(i)计算第i个图块的水平图块得分

如果我在print(i)函数的第一行中添加tileit(),它将打印到2919,然后停一会并显示此错误。

0 个答案:

没有答案