Problem p03722 (python)

Fixed submission:
n, m = map(int, input().split())
abc = [list(map(int, input().split())) for x in range(m)]
nodes = [[] for x in range(n + 1)]

for a, b, c in abc:
    nodes[a].append([a, b, -c])

costs = [None for x in range(n + 1)]
costs[1] = 0
flg = True
for i in range(n):
    for a, b, c in abc:
        if costs[a] == None:
            continue
        if costs[b] == None or costs[b] < costs[a] + c:
            flg = False
            costs[b] = costs[a] + c
    # for node in nodes[1:]:
    #     for a, b, c in node:
    #         if costs[a] == None:
    #             continue
    #         if costs[b] == None or costs[b] > costs[a] + c:
    #             flg = False
    #             costs[b] = costs[a] + c
#     if flg:
#         print(costs[n])
#         break
#     flg = True
# else:
#     print("inf")

ans = costs[n]
negative = [False for x in range(n + 1)]
for i in range(n - 1):
    for a, b, c in abc:
        if costs[a] == None:
            continue
        if costs[b] == None or costs[b] < costs[a] + c:
            costs[b] = costs[a] + c
            negative[b] = True

        if negative[a] == True:
            negative[b] = True

print(negative[n] and "inf" or ans)

Buggy submission (verdict: Runtime Error):
n, m = map(int, input().split())
abc = [list(map(int, input().split())) for x in range(m)]
nodes = [[] for x in range(n + 1)]

for a, b, c in abc:
    nodes[a].append([a, b, -c])

costs = [None for x in range(n + 1)]
costs[1] = 0
flg = True
for i in range(n):
    for node in nodes[1:]:
        for a, b, c in node:
            if costs[b] == None or costs[b] > costs[a] + c:
                flg = False
                costs[b] = costs[a] + c
            else:
                costs[b] = costs[b]
    if flg:
        print(-costs[n])
        break
    flg = True
else:
    print("inf")

Buggy submission (verdict: Runtime Error):
n, m = map(int, input().split())
abc = [list(map(int, input().split())) for x in range(m)]
nodes = [[] for x in range(n + 1)]

for a, b, c in abc:
    nodes[a].append([a, b, c])

costs = [None for x in range(n + 1)]
costs[1] = 0
flg = True
for i in range(n):
    for node in nodes[1:]:
        for a, b, c in node:
            if costs[b] == None or costs[b] < costs[a] + c:
                flg = False
                costs[b] = costs[a] + c
            else:
                costs[b] = costs[b]
    if flg:
        print(costs[n])
        break
    flg = True
else:
    print("inf")

Buggy submission (verdict: Runtime Error):
n, m = map(int, input().split())
abc = [list(map(int, input().split())) for x in range(m)]
 
nodemap = [[] for x in range(n + 1)]
 
for a, b, c in abc:
    nodemap[a].append([a, b, c])

changed = False

calced = [None for x in range(n + 1)]
calced[1] = 0

for i in range(n - 1):
    changed = False
    for nodes in nodemap:
        for node in nodes:
            now, nextnode, addvalue = node
            if calced[nextnode] == None or calced[nextnode] < calced[now] + addvalue:
                if calced[now] != None:
                    calced[nextnode] = calced[now] + addvalue
                changed = True
print("inf" if changed else calced[n])

Buggy submission (verdict: Runtime Error):
n, m = map(int, input().split())
abc = [list(map(int, input().split())) for x in range(m)]
 
nodemap = [[] for x in range(n + 1)]
 
for a, b, c in abc:
    nodemap[a].append([a, b, c])

changed = False

calced = [None for x in range(n + 1)]
calced[1] = 0

for i in range(n - 1):
    changed = False
    for nodes in nodemap:
        for node in nodes:
            now, nextnode, addvalue = node
            if calced[nextnode] == None or calced[nextnode] < calced[now] + addvalue:
                calced[nextnode] = calced[now] + addvalue
                changed = True
print("inf" if changed else calced[n])