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

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

가장 먼저 만나는 두 사람

시간 제한2초메모리 제한512 MB

요약
가중 무방향 그래프의 정점에 사람들이 있을 때, 모든 쌍에 대해 두 사람 사이 최단 거리의 절반 중 최솟값을 구하고 10km/h 기준 분 단위로 출력한다.
난이도

어려움10점 중 8점

유형
그래프, 최단 경로, 수학, 정렬
정답자
아직 제출이 없습니다

문제

ACM 통신사가 새로 내놓은 "만남 경로" 앱을 홍보하려고 행사를 연다. 이 앱을 써서 가장 먼저 만난 두 사람에게 경품을 준다.

행사가 시작하기 직전, 모든 사람은 앱으로 서로의 위치를 알고 있다. 어떤 두 사람이 만나기로 정하면 두 사람은 앱이 알려준 최단 경로를 따라 서로를 향해 동시에 출발한다. 모든 사람의 이동 속도는 시속 10 km다. 두 사람 사이 최단 경로의 길이가 dd km라면 두 사람은 각각 d/2d/2 km를 이동한 뒤에 만난다.

시상식을 준비하려면 행사가 끝나는 데 걸리는 최소 시간을 알아야 한다. 행사가 시작할 때 사람들의 위치와 그 지역의 지도가 주어질 때 이 시간을 구하자.

입력

첫째 줄에 행사에 참여하는 사람 수 NN, 지도에 있는 정점 개수 KK, 정점을 잇는 길의 개수 LL이 주어진다. (2≤N≤1000002 \le N \le 100000, 1≤K≤1000001 \le K \le 100000, 1≤L≤1000001 \le L \le 100000)

다음 NN개의 줄에는 각 사람의 위치를 나타내는 수 SiS_i가 주어진다. (1≤Si≤K1 \le S_i \le K) ii번째 사람이 SiS_i번 정점에 있다는 뜻이다. 여러 사람이 같은 정점에 있을 수도 있다.

다음 LL개의 줄에는 길 하나의 정보가 BiB_i, CiC_i, DiD_i로 주어진다. (1≤Bi≠Ci≤K1 \le B_i \ne C_i \le K, 1≤Di≤50001 \le D_i \le 5000) BiB_i번 정점과 CiC_i번 정점을 잇는 길이 DiD_i km인 길이 있다는 뜻이다. 길은 양쪽 방향으로 다닐 수 있고, 같은 두 정점을 잇는 길이 여러 개 주어질 수도 있다.

출력

어떤 두 사람이 만나는 데 걸리는 최단 시간을 분 단위로 구해 정수 하나를 출력한다. 서로 만날 수 있는 사람 쌍이 적어도 한 쌍 있다는 것은 보장된다. 두 사람이 같은 정점에서 출발하면 곧바로 만나므로 답이 0일 수도 있다.

예제3

  1. 예제 1

    입력
    2 2 1
    1
    2
    1 2 5
    
    예상 출력
    15
    
  2. 예제 2

    입력
    3 3 3
    1
    2
    3
    1 2 4
    3 2 4
    3 1 4
    
    예상 출력
    12
    
  3. 예제 3

    입력
    2 3 3
    1
    2
    1 2 9
    3 2 5
    1 3 3
    
    예상 출력
    24