Advertisement
Guest User

Untitled

a guest
Dec 15th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. def dijkstra(G):
  2. for i in my_list[G]:
  3. if i[2] < time[i[0]]:
  4. time[i[0]] = i[2]
  5. qeueu.append(i[0])
  6. while qeueu:
  7. first_el = qeueu.pop(0)
  8. for i in my_list[first_el]:
  9. if i[1] >= time[first_el] and i[2] < time[i[0]]:
  10. time[i[0]] = i[2]
  11. qeueu.append(i[0])
  12.  
  13.  
  14. N = int(input())
  15. d, v = map(int, input().split())
  16. d -= 1
  17. v -= 1
  18. R = int(input())
  19. my_list = [list() for _ in range(N)]
  20. for i in range(R):
  21. line = list(map(int, input().split()))
  22. my_list[line[0] - 1].append([line[2] - 1, line[1], line[3]])
  23. time = [10 ** 100] * N
  24. qeueu = list()
  25. dijkstra(d)
  26. if time[v] == 10 ** 10:
  27. print(-1)
  28. else:
  29. print(time[v])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement