INF = int(1e9)

N = 5
edge_list = []
dist = [INF] * N

# Create Edge List
edge_list.append([0, 1, 5])
edge_list.append([0, 3, -3])
edge_list.append([1, 2, 2])
edge_list.append([2, 4, 2])
edge_list.append([3, 1, 6])
edge_list.append([3, 4, 12])

# Execute Bellman-Ford Alogrithm with standard node '0'
dist[0] = 0
for i in range(1, N): # step i
    for start, end, weight in edge_list:
        if start == INF:
            continue
        dist[end] = min(dist[end], dist[start]+weight)

# Print result
print(dist)