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

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

소방차

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

요약
가중치가 있는 무방향 그래프에서 S에서 T까지의 최단 거리를 구하고, 그러한 최단 경로 중 S와 T를 포함해 지나는 모든 교차로에서 충전한 물의 합이 최대가 되는 경로의 물의 양을 구한다.
난이도

보통10점 중 6점

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

문제

ANA 도시는 NN개의 교차로와, MM개의 양방향 도로로 이루어져 있고, 교차로는 11번부터 NN번까지 번호가 매겨져 있다. SS번 교차로에는 ANA 도시의 유일한 소방서가 위치하는데, 무겸이는 이곳에서 소방차 운전 기사로 일하고 있다. 무겸이는 소방차를 타고 화재가 발생한 교차로에 출동해서 화재를 진압한다.

소방차에는 물을 담을 수 있는 물탱크가 있어서 이곳에 담은 물을 화재를 진압하는데에 사용할 수 있다. 소방차는 소방서에서 물탱크가 빈 상태로 출동하지만, 이동 중에 교차로에 도착할 때마다 교차로에 설치된 소화전을 이용해서 물탱크에 물을 충전한다. 소방차가 ii번째 교차로에 한 번 도착할 때마다 충전하는 물의 양은 a_ia\_i리터이며, 소방차는 소방서가 위치한 교차로에서 출동할 때나 화재가 발생한 교차로에 도착했을 때에도 물탱크에 물을 충전한다. 무겸이가 교차로에서 물을 충전하는데에는 시간이 걸리지 않고, 소방차의 물탱크의 용량에도 제한이 없다.

어느 날, TT번 교차로에 화재가 발생했다. 무겸이는 소방차를 타고 화재가 발생한 교차로까지 최단 경로로 이동한다. 그런데 이러한 최단 경로는 여러 개가 있을 수 있다. 무겸이는 여러 개의 최단 경로 중에서 최대한 많은 양의 물을 가지고 도착할 수 있는 경로로 이동한다. 무겸이가 TT번 교차로에 도착했을 때, 소방차의 이동 거리와 물탱크에 충전된 물의 양은 얼마일까?

입력

첫째 줄에 ANA 도시의 교차로의 개수를 의미하는 N(2≤N≤100 000)N(2 \le N \le 100\ 000)이 주어진다.

둘째 줄에 정수 a_1,a_2,...,a_Na\_1, a\_2, ..., a\_N이 주어진다. a_i(1≤a_i≤1 000 000)a\_i(1 \le a\_i \le 1\ 000\ 000)는 소방차가 교차로에 한 번 도착할 때마다 충전하는 물의 양(리터)이다.

셋째 줄에 ANA 도시의 양방향 도로의 개수를 의미하는 M(1≤M≤300 000)M(1 \le M \le 300\ 000)이 주어진다.

넷째 줄부터 MM개의 줄에 양방향 도로가 연결하는 양 끝 교차로의 번호 u,v(1≤u,v≤N,u≠v)u, v(1 \le u, v \le N, u \neq v)와 도로의 길이를 의미하는 정수 w(1≤w≤1 000 000)w(1 \le w \le 1\ 000\ 000)가 주어진다.

M+4M + 4번째 줄에 소방서가 위치한 교차로의 번호와 화재가 발생한 교차로의 번호를 의미하는 S,T(1≤S,T≤N,S≠T)S, T(1 \le S, T \le N, S \neq T)가 주어진다.

출력

SS번 교차로에서 TT번 교차로까지 최단 경로의 길이를 출력한다. 그리고 최단 경로 중에서 최대한 많은 양의 물을 가지고 도착할 수 있는 경로로 이동했을 때 물탱크에 충전된 물의 양(리터)을 출력한다.

만약 소방차가 TT번 교차로에 도착할 수 없다면 -1만을 출력한다.

예제2

  1. 예제 1

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

    입력
    4
    3 2 1 4
    3
    1 2 2
    1 2 3
    2 3 1
    1 4
    
    예상 출력
    -1