만드는 중입니다

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

치즈버거

면접 대비

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

요약
각 농장은 가장 가까운 체인점에만 치즈를 공급하고, 각 체인점은 공급받을 수 있는 농장 중 가장 싼 가격을 냅니다. 체인점마다 그 가격을 구합니다.
난이도

보통10점 중 6점

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

문제

정후는 평소에 지하철을 자주 이용합니다. 지하철 노선도에는 지하철역 NN개가 MM개의 철로로 연결되어 있습니다. ii번째 철로는 uiu_i번째 지하철역과 viv_i번째 지하철역을 양방향으로 잇고, 이 철로를 이용하면 두 지하철역 사이를 이동하는 데 wiw_i의 시간이 걸립니다.

어느 날 정후는 한 지하철역에서 치즈버거를 먹었는데, 그 뒤로 치즈버거를 아주 좋아하게 되어 a1,a2,⋯ ,aKa_1, a_2, \cdots, a_K번째 지하철역에 치즈버거 체인점을 냈습니다. 이제 치즈를 수송해 오는 일만 남았습니다.

정후는 주변의 치즈 농장을 찾아보았고, TT개의 치즈 농장이 b1,b2,⋯ ,bTb_1, b_2, \cdots, b_T번째 지하철역 근처에 있다는 것을 알아냈습니다. bib_i번째 지하철역 근처 농장의 치즈 가격은 cic_i입니다. 정후는 KTX특송으로 각 체인점에 치즈를 전달합니다. KTX특송에 걸리는 시간은 지하철역 사이를 이동하는 시간과 같습니다.

각 농장은 배송 시간이 가장 짧은 하나 이상의 체인점에 치즈를 공급할 수 있습니다. 각 체인점은 공급받을 수 있는 치즈 중 가장 싼 치즈를 구매합니다. 각 체인점이 구매하는 치즈의 가격은 얼마입니까?

입력

첫째 줄에 네 정수 NN, MM, KK, TT가 공백으로 구분되어 주어집니다.

둘째 줄에 KK개의 정수 a1,a2,⋯ ,aKa_1, a_2, \cdots, a_K가 공백으로 구분되어 주어집니다.

이어서 TT개의 줄에 걸쳐 각 줄에 두 정수 bib_i, cic_i가 공백으로 구분되어 주어집니다.

이어서 MM개의 줄에 걸쳐 각 줄에 세 정수 uiu_i, viv_i, wiw_i가 공백으로 구분되어 주어집니다.

출력

한 줄에 ii번째 체인점이 구매하는 치즈의 가격을 나타내는 KK개의 정수를 공백으로 구분하여 출력합니다. 체인점이 치즈를 구매할 수 없다면 -1을 출력합니다.

제한

  • 1≤N≤300 0001 \leq N \leq 300\,000
  • N−1≤M≤300 000N-1 \leq M \leq 300\,000
  • 1≤K,T≤N1 \leq K, T \leq N
  • 1≤ai,bi,ui,vi≤N1 \leq a_i, b_i, u_i, v_i \leq N
  • i<ji<j이면 ai<aja_i<a_j이고 bi<bjb_i<b_j
  • ui<viu_i<v_i
  • 1≤ci,wi≤1 000 000 0001 \leq c_i, w_i \leq 1\,000\,000\,000

예제1

  1. 예제 1

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