fork download
  1. ans={}
  2. import numpy as np
  3. b=list(input().split(','))
  4. for i in range(len(b)):
  5. ans[b[i]]= ['NIL',np.inf]
  6. n = int(input())
  7. w=[]
  8. for i in range(n):
  9. w.append(list(input().split(',')))
  10. ans['A'] = ['NIL',0]
  11. adj={}
  12. for i in range(len(w)):
  13. adj[w[i][0]]=[]
  14. for i in range(len(w)):
  15. adj[w[i][0]].append(w[i][1])
  16. S=[]
  17. ans
  18. def relax(u,v,w):
  19. W=0
  20. for i in range(len(w)):
  21. if w[i][0] == u and w[i][1] == v:
  22. W= int(w[i][2])
  23. if ans[v][1] > ans[u][1] + W:
  24. ans[v][1] = ans[u][1] + W
  25. ans[v][0] = u
  26. for i in range(len(b)) :
  27. u= sorted(ans.items(),key = lambda item: item[1][1])[i][0]
  28. S.append(u)
  29. for i in range(len(b)):
  30. if b[i] in adj[u]:
  31. relax(u,b[i],w)
  32. for i in range(len(b)):
  33. print(ans[b[i]][1])
Success #stdin #stdout 0.22s 26916KB
stdin
A,B,C,D,E,F,G,H,I,J,K
62
A,B,5
A,C,7
A,D,6
A,F,3
A,G,7
A,J,2
A,K,2
B,D,2
B,E,5
B,F,1
B,I,6
B,J,6
B,K,4
C,E,5
C,F,2
C,H,5
C,I,2
C,J,6
D,A,5
D,B,5
D,C,4
D,E,6
D,F,3
D,I,4
E,A,2
E,C,4
E,D,4
E,F,6
E,H,5
E,I,2
F,B,2
F,I,7
F,K,7
G,B,7
G,C,7
G,F,6
G,J,1
G,K,5
H,A,7
H,E,3
H,G,2
H,I,4
H,J,3
H,K,5
I,A,2
I,B,7
I,F,6
I,G,5
I,K,6
J,A,6
J,C,5
J,D,3
J,E,5
J,G,4
K,A,5
K,B,3
K,C,5
K,D,5
K,E,6
K,G,3
K,H,7
K,J,7
stdout
0
5
7
5
7
3
5
9
9
2
2