밤편지
시간 제한1초메모리 제한1024 MB
각 질의 (C, s, e)마다 중간에 거치는 집의 번호가 C 이상이면 안 된다는 조건에서 s에서 e까지 가는 최단 경로를 구한다.
문제
선린마을에는 밤마다 소중한 사람을 향해 반딧불을 보내는 전통이 있다.
선린마을은 번부터 번까지의 번호가 붙은 채의 집과 집 사이를 잇는 양방향 도로로 이루어져 있다. 반딧불은 출발지와 도착지를 직접 연결하는 길이 없거나 더 효율적인 경로가 있는 경우 다른 집들을 거쳐갈 수 있다. 번 집에는 방울의 이슬이 있으며, 반딧불은 출발지와 도착지를 제외하고 이동하는 동안 거치는 모든 집의 이슬을 반드시 모두 마셔야 한다. 안타깝게도 반딧불은 각각 상수 를 가지고 있으며, 이슬을 방울 이상 마시면 더 이상 날아가지 않고 잠들어 버린다.
선린마을의 주민 찬우는 이슬을 방울 이상 마실 수 없는 반딧불이 번 집에서 번 집으로 이동하는 데 걸리는 최소 시간이 번이나 궁금해졌다.
찬우의 질문에 답하는 프로그램을 작성하자.
입력
첫째 줄에 집의 수 과 질문의 수 가 주어진다.
둘째 줄부터 줄에 걸쳐 길의 정보가 주어진다. 번 줄의 번째 수를 라고 할 때, 가 양의 정수라면 번 집과 번 집을 잇는 길을 통과하는 시간을 의미하고, 이라면 번 집과 번 집 사이를 연결하는 길이 없다는 의미이다.
다음 줄부터는 개의 줄에 걸쳐 정수 , , 가 공백으로 구분되어 주어진다.
이는 이슬을 방울 이상 마실 수 없는 반딧불이 번 집에서 번 집으로 이동하는 데 걸리는 최소 시간을 묻는 질문이다.
출력
개의 줄에 걸쳐 질문의 답을 한 줄에 하나씩 순서대로 출력한다. 목적지에 도착하는 것이 불가능한 경우에는 을 출력한다.
제한
- 인 모든 , 에 대해 , ,