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