Road To The LegenD,

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

요약
주어진 가중치 간선과 각 마을에서 편한 길로 갈 수 있는 이웃의 최대 격을 기준으로 정의되는 암시적 간선을 이용해, 도달 가능한 마을까지의 최단 거리 중 최댓값을 구한다.
난이도

어려움10점 중 8점

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

문제

토니는 LegenD가 되기 위한 여정에 나섰다. 기나긴 여정 중에는 11부터 NN까지 번호가 붙은 NN개의 마을을 거칠 수 있고, uu번 마을에는 마을의 격 h_uh\_u가 있다. 토니는 처음에 11번 마을에 있다. 신이 정한 특정한 마을에 도달하면 토니는 LegenD가 될 수 있다.

마을 사이를 잇는 길은 두 종류로 편한 길과 고행의 길이 있다.

편한 길은 고대부터 존재하던 길로 총 MM개가 있으며 ii번째 편한 길을 통하면 u_iu\_i번 마을에서 v_iv\_i번 마을로 시간 t_it\_i를 들여 이동할 수 있다. 같은 마을 번호 쌍 (u_i,v_i)(u\_i, v\_i)에 대해 u_iu\_i번 마을에서 v_iv\_i번 마을로 이동 가능한 편한 길이 둘 이상 존재할 수 있다.

고행의 길은 선대 LegenD에 의해 00개 이상 설치되었다. uu번 마을과 uu번 마을로부터 편한 길 정확히 하나를 지나 도착할 수 있는 마을들 중 가장 격이 높은 마을의 격을 H_uH\_u라고 하자. 11 이상 NN 이하의 정수 u,vu, v에 대해 H_u<h_vH\_u \lt h\_v라면 uu번 마을에서 vv번 마을로 가는 고행의 길이 설치되어 있다. uu번 마을에서 출발하는 고행의 길 하나를 통해 vv번 마을로 가는 데에는 시간 p_up\_u가 걸린다.

신은 도착하면 LegenD가 되는 마을을 정할 때, 토니가 도달할 수 있는 마을 중 해당 마을에 도달하기까지 걸리는 최소시간이 가장 긴 마을을 정했다. 토니가 LegenD가 되는 데 성공했다면, 걸린 시간은 최소 얼마일까?

입력

첫째 줄에 마을의 수 NN과 편한 길의 수 MM가 공백으로 구분되어 주어진다. (2≤N≤200,000(2 \le N \le 200\\,000; 1≤M≤400,000)1 \le M \le 400\\,000)

둘째 줄에 각 마을의 격을 나타내는 정수 h_1,h_2,⋯ ,h_Nh\_1, h\_2, \cdots, h\_N이 공백으로 구분되어 주어진다. (1≤h_u≤109)(1 \le h\_u \le 10^9)

셋째 줄에 각 마을에서 출발하는 고행의 길을 지날 때 걸리는 시간을 나타내는 정수 p_1,p_2,⋯ ,p_Np\_1, p\_2, \cdots, p\_N이 공백으로 구분되어 주어진다. (1≤p_u≤109)(1 \le p\_u \le 10^9)

다음 MM개 줄 중 ii번째 줄에, ii번째 편한 길의 출발 마을 u_iu\_i와 도착 마을 v_iv\_i, 이동 시간을 나타내는 정수 t_it\_i가 공백으로 구분되어 주어진다. (1≤u_i,v_i≤N;(1 \le u\_i, v\_i \le N; 1≤t_i≤109;1 \le t\_i \le 10^9; u_i≠v_i)u\_i \ne v\_i)

출발 마을과 도착 마을이 같은 편한 길이 둘 이상 존재할 수 있다.

출력

첫째 줄에 토니가 LegenD가 되는 데 걸린 시간의 최솟값을 출력한다.

예제2

  1. 예제 1

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

    입력
    5 10
    4 5 6 5 9
    3 9 3 3 1
    3 2 8
    4 5 8
    1 5 1
    3 2 9
    4 2 9
    5 4 1
    4 2 6
    3 1 6
    5 4 7
    2 4 1
    
    예상 출력
    17