정기검진
시간 제한1.5초메모리 제한256 MB
강으로 나뉜 그래프에서 다리 B개를 건널 수 있을 때, 집에서 병원까지 가는 최단 시간을 묻는 Q개의 질의에 답하고 불가능하면 -1을 출력한다.
문제
디디플래닛 주민은 정기검진을 받으러 병원에 간다.
디디플래닛에는 집이 개(번), 병원이 개(번) 있다. 집이 모여 있는 구역과 병원이 모여 있는 구역은 깊은 강으로 갈라져 있다. 강을 건너려면 반드시 다리를 지나야 한다. 다리는 개(번)이고, 어느 다리든 건너는 데 걸리는 시간은 초라고 가정한다.
디디플래닛에는 집, 병원, 다리를 잇는 도로가 개 있다. 다리와 다리를 잇는 도로도 있을 수 있다. 다만 집이 있는 구역과 병원이 있는 구역 사이에는 깊은 강이 흐르므로, 집과 병원을 직접 잇는 도로는 없다.
질문 개에 답해야 한다.
- 번 집에 사는 주민이 번 병원까지 가는 데 걸리는 최소 시간은 얼마인가?
입력
첫째 줄에 집의 수 과 병원의 수 (), 다리의 수 (), 도로의 수 (), 질문의 수 ()가 공백으로 구분되어 주어진다.
둘째 줄부터 개 줄에 정수 , , 가 공백으로 구분되어 주어진다. 지점 와 지점 를 잇는 도로가 있고, 그 도로를 지나는 데 ()의 시간이 든다는 뜻이다.
그다음 개 줄에 질문의 와 가 공백으로 구분되어 주어진다. (, )
출력
번째 줄에 번째 질문의 답을 출력한다. 번 집에서 번 병원으로 갈 수 없으면 을 출력한다.