아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

사과 배달

시간 제한1초메모리 제한128 MB

요약
가중 무방향 그래프에서 시작 노드로부터 두 지정 노드를 어느 순서로든 방문하고 돌아오는 최단 경로의 길이를 구한다.
난이도

보통10점 중 6점

유형
그래프, 최단 경로, 그리디, 구현
정답자
아직 제출이 없습니다

문제

베시(Bessie)는 잘 익은 빨간 사과 두 개를 무리에 있는 두 친구에게 배달하려고 합니다.

목장(pasture)은 11번부터 PP번까지 번호가 매겨져 있으며 (1≤P≤100,0001 \le P \le 100{,}000), 이 목장들은 CC개의 양방향 소길(cowpath)로 연결되어 있습니다 (1≤C≤200,0001 \le C \le 200{,}000). 각 소길은 서로 다른 두 목장 P1iP1_i와 P2iP2_i를 잇고, 길이 DiD_i를 가집니다. 한 목장에서 자기 자신으로 이어지는 소길은 없습니다. 모든 소길 길이의 합 ∑Di\sum D_i는 2,000,000,0002{,}000{,}000{,}000을 넘지 않습니다. 또한 임의의 목장에서 다른 임의의 목장으로 항상 이동할 수 있습니다.

베시는 목장 PBPB에서 출발하여, 서로 다른 두 목장 PA1PA1과 PA2PA2를 어떤 순서로든 모두 방문하여 사과 두 개를 배달해야 합니다. 세 목장 PBPB, PA1PA1, PA2PA2는 모두 서로 다릅니다. 이동 중에는 이미 지난 목장이나 소길을 다시 지나갈 수 있으며, 이동 거리는 지나간 모든 소길의 길이를 더한 값입니다.

베시가 사과 두 개를 모두 배달하기 위해 이동해야 하는 최소 총 거리를 구하세요.

아래는 대괄호로 표시한 목장 번호와 각 소길 및 그 길이를 나타낸 지도의 예시입니다.

                3        2       2
           [1]-----[2]------[3]-----[4]
             \     / \              /
             7\   /4  \3           /2
               \ /     \          /
               [5]-----[6]------[7]
                    1       2

입력

첫째 줄에 공백으로 구분된 다섯 정수 CC, PP, PBPB, PA1PA1, PA2PA2가 주어집니다.

이어지는 CC개의 줄 중 ii번째 줄에는 소길 ii가 잇는 두 목장과 그 길이를 나타내는 세 정수 P1iP1_i, P2iP2_i, DiD_i가 주어집니다.

출력

베시가 사과 두 개를 모두 배달하기 위해 이동해야 하는 최소 총 거리를 한 줄에 출력합니다.

예제3

  1. 예제 1

    입력
    9 7 5 1 4
    5 1 7
    6 7 2
    4 7 2
    5 6 1
    5 2 4
    4 3 2
    1 2 3
    3 2 2
    2 6 3
    
    예상 출력
    12
    
  2. 예제 2

    입력
    3 3 1 2 3
    1 2 5
    2 3 3
    1 3 10
    
    예상 출력
    8
    
  3. 예제 3

    입력
    4 5 3 1 5
    1 2 2
    2 3 2
    3 4 2
    4 5 2
    
    예상 출력
    12