Pagini recente » Cod sursa (job #1070574) | Cod sursa (job #1809136) | Cod sursa (job #345175) | Cod sursa (job #428981) | Cod sursa (job #2486448)
def read_file(file_name):
G = {}
with open(file_name) as f:
n, m, x, y = [int(x) for x in next(f).split()]
for i in range(1, n+1):
G[i] = {}
for line in f:
i, j, d = [int(x) for x in line.split()]
G[i].update({j: d})
G[j].update({i: -d})
return n, x, y, G
def bfs(x, y, n, G):
q = [(x, 0)]
viz = [0] * (n+1)
viz[x] = 1
while len(q):
(node, dist) = q.pop(0)
for k in G[node]:
if not viz[k]:
d = dist + G[node][k]
if k == y:
return d
viz[k] = 1
q.append((k, d))
return 0
def write_file(file_name, res):
with open('sate.out', 'w') as f:
f.write(str(res))
def main():
n, x, y, G = read_file("sate.in")
res = bfs(x, y, n, G)
write_file("sate.out", res)
if __name__ == "__main__":
main()