RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
문제 JOI00171

定期券(Commuter Pass)

설명

定期券を購入する際に指定する経路をうまく選んだときの,駅U から駅V への移動にかかる運賃の最小
値を求めるプログラムを作成せよ.

제약

小課題1 [16 点]
• S = U を満たす.
小課題2 [15 点]
• 駅S から駅T へ最小の運賃で移動するときに用いることができる経路は1 通りしかない.
小課題3 [24 点]
• N ≦300 を満たす.
小課題4 [45 点]
• 追加の制限はない.

입력 형식

標準入力から以下の入力を読み込め.
• 1 行目には,2 個の整数N, M が書かれている.これらは,JOI 君が住む都市にN 個の駅とM 本の鉄
道路線があることを表す.
• 2 行目には,2 個の整数S, T が書かれている.これらは,JOI 君が駅S から駅T への定期券を購入
することを表す.
• 3 行目には,2 個の整数U, V が書かれている.これらは,JOI 君が駅U から駅V への移動にかかる
運賃を最小化したいことを表す.
• 続くM 行のうちのi 行目(1 ≦i ≦M) には,3 個の整数Ai, Bi,Ci が書かれている.これらは,鉄道路
線i が駅Ai と駅Bi を双方向に結び,その運賃がCi 円であることを表す.

第17 回日本情報オリンピック(JOI 2017/2018) 本選
2018 年2 月11 日(茨城県つくば市)

출력 형식

標準出力に,定期券を購入する際に駅S から駅T への経路をうまく指定したときの,駅U から駅V へ
の移動にかかる運賃の最小値を1 行で出力せよ.
制限
すべての入力データは以下の条件を満たす.
• 2 ≦N ≦100 000.
• 1 ≦M ≦200 000.
• 1 ≦S ≦N.
• 1 ≦T ≦N.
• 1 ≦U ≦N.
• 1 ≦V ≦N.
• S , T.
• U , V.
• S , U またはT , V.
• どの駅から他のどの駅へも1 本以上の鉄道路線を用いて到達できる.
• 1 ≦Ai < Bi ≦N (1 ≦i ≦M).
• 1 ≦i < j ≦M に対し,Ai , A j またはBi , Bj.
• 1 ≦Ci ≦1 000 000 000 (1 ≦i ≦M).

第17 回日本情報オリンピック(JOI 2017/2018) 本選
2018 年2 月11 日(茨城県つくば市)

예제 1
입력
6 6
1 6
1 4
1 2 1
2 3 1
3 5 1
2 4 3
4 5 2
5 6 1
출력
2
예제 2
입력
6 5
1 2
3 6
1 2 1000000000
2 3 1000000000
3 4 1000000000
4 5 1000000000
5 6 1000000000
출력
3000000000
예제 3
입력
8 8
5 7
6 8
1 2 2
2 3 3
3 4 4
1 4 1
1 5 5
2 6 6
3 7 7
4 8 8
출력
15
예제 4
입력
5 5
1 5
2 3
1 2 1
2 3 10
2 4 10
3 5 10
4 5 10
출력
0
예제 5
입력
10 15
6 8
7 9
2 7 12
8 10 17
1 3 1
3 8 14
5 7 15
2 3 7
1 10 14
3 6 12
1 5 10
8 9 1
2 9 7
1 4 1
1 8 1
2 4 7
5 6 16
출력
19
문제 정보

생성자가 기록되지 않았습니다.

출처 JOI 2018 Final

평가 및 의견

定期券(Commuter Pass)

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

定期券(Commuter Pass)

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8