Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- n,s,f = map(int, input().split())
- s-=1
- f-=1
- INF = 1000000000
- Dist = [ 0 ] *n
- for i in range(n):
- Dist[i] = list ( map( int, input().split() ) )
- d = [ INF ] * n
- u = [ False ] *n
- d[s] = 0
- for i in range(n):
- minv = -1
- for j in range(n):
- if not u[j] and (minv == -1 or d[minv] > d[j] ):
- minv = j
- if d[minv] == INF:
- break
- u[minv] = True
- for j in range(n):
- if Dist[minv][j] != -1:
- d[j] = min ( d[j], d[minv] + Dist[minv][j] )
- if d[f] == INF:
- print(-1)
- else:
- print(d[f])
Advertisement
Add Comment
Please, Sign In to add comment