#1203
Gold III
최단 경로
스페셜 저지
시간 제한
1s
메모리 제한
512MB
제출
4
정답
3
맞힌 사람
3
정답 비율
75.0%

문제

최단 거리를 구하는 알고리즘을 잘 작성하셨는데, 최단 경로는 어떻게 구하나요? -이종률 교수님-

NN개의 정점과 MM개의 유향 간선으로 이루어진 그래프가 주어진다. 각 정점에는 11부터 NN까지 번호가 매겨져 있고, 각 간선에는 음이 아닌 정수 가중치가 부여되어 있다.

이 그래프에서 11번 정점에서 NN번 정점으로 가는 최단 경로를 구해보자. 최단 거리는 유일하지만, 최단 경로는 여러 개가 있을 수도 있음에 유의하자.

입력

첫째 줄에 NNMM이 공백으로 구분되어 주어진다. (2N100000; 1M3000002\le N\le 100\,000;\ 1\le M\le 300\,000)

둘째 줄부터 MM개의 줄에 걸쳐 각 줄에 각 간선이 연결하는 두 정점 uu, vv와 가중치 ww가 공백으로 구분되어 주어진다. (1u,vN; uv;0w1091\le u, v\le N;\ u\neq v; 0\le w\le 10^9)

두 정점을 연결하는 간선이 여러 개 주어질 수도 있음에 유의하자.

출력

11번 정점에서 NN번 정점으로 가는 최단 경로에서 거치는 정점이 11, AA, BB, CC, NN라면, 1 -> A -> B -> C -> N처럼 출력한다. 만약 11번 정점과 NN번 정점 사이에 경로가 존재하지 않는다면 대신 -1를 출력한다.

정답이 여러 개라면 그 중 하나만 출력한다.

예제 입력 1

7 9
1 2 3
2 3 1
4 2 1
3 6 3
6 7 2
1 4 0
7 1 4
5 4 8
1 6 10

예제 출력 1

1 -> 4 -> 2 -> 3 -> 6 -> 7

예제 입력 2

5 5
1 2 2
1 3 1
3 4 1
2 5 1
4 5 1

예제 출력 2

1 -> 3 -> 4 -> 5

1 -> 2 -> 5도 정답으로 인정된다.

노트

출제자는 교수님의 질문에 답하지 못했다..

문제를 만든 사람
조서현
알고리즘 분류
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
#순위사용자언어시간메모리코드 길이
6120🥇
조서현
PyPy195ms87488KB704B
6121🥈
안우진
Python377ms65712KB757B
8621🥉
정민용
PyPy1213ms114760KB975B
난이도 투표
Gold III2명 투표· 26일 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
#사용자문제결과언어시간메모리코드 길이제출 시간
8621
맞았습니다
PyPy1213ms114760KB975B2026. 05. 30. 14:08
8620
틀렸습니다
PyPy--881B2026. 05. 30. 14:06
6121
맞았습니다
Python377ms65712KB757B2026. 05. 11. 08:29
6120
맞았습니다
PyPy195ms87488KB704B2026. 05. 11. 08:23