Compare commits
No commits in common. "9cd5b1b7f905468d9b0b5fc281a96c677526c4fd" and "de61542c0bdfb8fda65daba6180cb3a825b69951" have entirely different histories.
9cd5b1b7f9
...
de61542c0b
@ -1,45 +0,0 @@
|
||||
import heapq
|
||||
|
||||
n, m = map(int, [input(), input()])
|
||||
graph = [[] for _ in range(n+1)]
|
||||
|
||||
for _ in range(m) :
|
||||
u, v, w = map(int, input().split())
|
||||
graph[u].append((v,w))
|
||||
|
||||
start, end = map(int, input().split())
|
||||
|
||||
inf = float("inf")
|
||||
distance = [inf for _ in range(n+1)]
|
||||
distance[start] = 0
|
||||
|
||||
prevNode = [0]*(n+1)
|
||||
|
||||
heap = []
|
||||
heapq.heappush(heap, (0, start))
|
||||
|
||||
while len(heap) != 0 :
|
||||
cur_dist, now = heapq.heappop(heap)
|
||||
|
||||
if distance[now] < cur_dist :
|
||||
continue
|
||||
|
||||
for Next in graph[now] :
|
||||
next, nw = Next
|
||||
|
||||
if distance[next] > distance[now] + nw :
|
||||
distance[next] = distance[now] + nw
|
||||
heapq.heappush(heap, (distance[next], next))
|
||||
prevNode[next] = now
|
||||
|
||||
channel = [end]
|
||||
ptr = end
|
||||
while ptr != start :
|
||||
ptr = prevNode[ptr]
|
||||
channel.append(ptr)
|
||||
|
||||
channel.reverse()
|
||||
|
||||
print(distance[end])
|
||||
print(len(channel))
|
||||
print(*channel)
|
||||
@ -1,3 +0,0 @@
|
||||
export {};
|
||||
const input = require("fs").readFileSync(0).toString().trim().split('\n').map(Number);
|
||||
console.log(input[0]+input[1]);
|
||||
Loading…
x
Reference in New Issue
Block a user