만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

사이버랜드

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

요약
나라 0에서 나라 H까지 가는 최소 시간을 구합니다. 일부 나라에서는 시간을 0으로 만들거나 절반으로 줄이며, 절반으로 줄이는 능력은 최대 K번까지 쓸 수 있습니다.
난이도

어려움10점 중 8점

유형
최단 경로, 동적 계획법, 그래프, 힙
정답자
아직 제출이 없습니다

문제

3742년이 되었고, 이제 사이버랜드가 APIO를 개최할 차례이다. 이 세계에는 00부터 N−1N - 1까지 번호가 붙은 나라 NN개와, 00부터 M−1M - 1까지 번호가 붙은 양방향 도로 MM개가 있다. ii번째 도로(0≤i<M0 \le i < M)는 서로 다른 두 나라 x[i]x[i]와 y[i]y[i]를 잇고, 이 도로를 지나는 데 c[i]c[i]만큼의 시간이 걸린다. 자국을 제외한 모든 참가자는 APIO를 위해 사이버랜드에 모였다. 당신은 나라 00에 살고 있고, 사이버랜드는 나라 HH이다. 자국에서 가장 똑똑한 사람으로서 당신의 도움이 다시 한번 시급히 필요하다. 구체적으로, 자국에서 사이버랜드에 도착하는 데 필요한 최소 시간을 구하라. 어떤 나라에서는 총 통과 시간을 00으로 만들 수 있다. 또 어떤 나라에서는 총 통과 시간을 22로 나눌 수 있다(2로 나누기 능력). 같은 나라를 여러 번 방문해도 된다. 나라를 방문할 때마다 그 나라의 특수 능력을 쓸지 말지 선택할 수 있다. 다만 한 번의 방문에서 특수 능력은 최대 한 번만 쓸 수 있다(따라서 나라를 여러 번 방문하면 특수 능력도 여러 번 쓸 수 있다). 더불어 2로 나누기 능력은 사이버랜드 화학재단에 적발되지 않도록 최대 KK번까지만 쓸 수 있다. 사이버랜드에 도착하면 곧 열릴 대 APIO 대회 때문에 더 이상 어디로도 이동할 수 없다. 배열 arrarr이 주어지며, arriarr_i(0≤i<N0 \le i < N)는 나라 ii의 특수 능력을 나타낸다. 특수 능력은 세 종류이다. arri=0arr_i = 0이면 그 나라에서 통과 시간을 00으로 만든다. arri=1arr_i = 1이면 그 나라에서 통과 시간이 변하지 않는다. arri=2arr_i = 2이면 그 나라에서 통과 시간을 22로 나눈다. arr0=arrH=1arr_0 = arr_H = 1임이 보장된다. 즉 사이버랜드와 자국에는 특수 능력이 없다. 자국은 APIO의 순간순간을 놓치고 싶지 않으므로, 사이버랜드에 도착하는 최소 시간을 구하라. 사이버랜드에 도달할 수 없다면 답은 −1-1이다.

제한

2≤N≤1052 \le N \le 10^5, ∑N≤105\sum N \le 10^5. 0≤M≤min⁡{105,N(N−1)2}0 \le M \le \min\{10^5, \frac{N(N-1)}{2}\}, ∑M≤105\sum M \le 10^5. 1≤K≤1061 \le K \le 10^6. 1≤H<N1 \le H < N. 0≤x[i],y[i]<N0 \le x[i], y[i] < N, x[i]≠y[i]x[i] \ne y[i]. 1≤c[i]≤1091 \le c[i] \le 10^9. arr[i]∈{0,1,2}arr[i] \in \{0, 1, 2\}. 두 나라를 잇는 도로는 최대 하나뿐임이 보장된다.

예제1

  1. 예제 1

    입력
    1
    2 0 1 1
    1 1
    
    예상 출력
    -1