신문 배달

면접 대비

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

요약
주소가 N+1개이고 도로가 정확히 N개일 때, 0번 사무실에서 시작해 모든 주소를 배달하고 학교까지 가는 최소 시간을 구한다.
난이도

어려움10점 중 8점

유형
그래프, DFS, 동적 계획법, 트리
정답자
아직 제출이 없습니다

문제

등록금에 쪼들리는 학생인 당신은 신문 배달 아르바이트를 하기로 했습니다. 배달 구역으로 11번부터 NN번까지 번호가 매겨진 주소들의 집합을 배정받았습니다.

매일 아침 당신은 신문사 사무실인 00번 주소에서 출발합니다. 모든 주소에 신문을 배달하는 경로를 짜야 하며, 배달을 마치면 곧바로 수업에 가고 싶습니다. 이 지역에는 주소들을 잇는 도로가 정확히 NN개 있고, 각 도로를 지나는 데 걸리는 시간이 정해져 있습니다. 또한 신문사 사무실을 포함해 각 위치에서 캠퍼스까지 가는 데 걸리는 시간을 미리 계산해 두었습니다. 신문 배달을 끝내고 학교 자리에 앉기까지 걸리는 최소 시간은 얼마일까요?

입력

첫째 줄에 정수 NN(주소의 개수, 1≤N≤1000001 \le N \le 100000)이 주어집니다.

다음 N+1N+1개의 줄에는 각각 정수 cic_i(i=0,1,…,Ni = 0, 1, \dots, N, 0≤ci≤1,000,000,0000 \le c_i \le 1{,}000{,}000{,}000)가 주어집니다. 위치 ii에서 캠퍼스까지 가는 데 걸리는 시간입니다.

마지막 NN개의 줄에는 각각 세 정수 aa, bb, cc(0≤a,b≤N0 \le a, b \le N, a≠ba \ne b, 0≤c≤1,0000 \le c \le 1{,}000)가 주어지며, 위치 aa와 bb를 잇고 지나는 데 cc분이 걸리는 도로를 나타냅니다.

모든 주소에 도달할 수 있음이 보장됩니다. (위치 00은 신문사 사무실임을 기억하세요.)

출력

모든 신문을 배달하고 수업에 도착하기까지 걸리는 최소 시간을 출력합니다.

힌트

모든 주소를 방문한 뒤 사무실로 돌아와 거기서 학교로 가는 편이 더 나을 수도 있습니다.

예를 들어 0→1→0→2→0→학교0 \to 1 \to 0 \to 2 \to 0 \to \text{학교} 경로는 1+1+2+2+1=71 + 1 + 2 + 2 + 1 = 7의 시간이 걸립니다.

예제2

  1. 예제 1

    입력
    2
    1
    3
    4
    0 1 1
    0 2 2
    
    예상 출력
    7
    
  2. 예제 2

    입력
    1
    5
    10
    0 1 3
    
    예상 출력
    11