긴급 출동
시간 제한1초메모리 제한128 MB
가중치가 있는 방향 그래프에서 여러 출발 지점 중 하나라도 범죄 현장 교차점에 도달하는 최단 시간을 여러 질의에 대해 구한다.
문제
범죄가 발생하면 경찰의 긴급 출동 차량이 최대한 빨리 범죄 현장에 도착하는 것이 매우 중요합니다. 그래야 증거를 최대한 확보하고, 피해자를 구하며, 어쩌면 범인까지 검거할 수 있습니다. 이를 위해서는 교통 정체 등을 피하려고 여러 곳에서 동시에 출동 차량을 보내는 것이 유용할 때가 많습니다. 이 문제에서는 여러 대의 차량 중 가장 먼저 범죄 현장에 도착하는 차량이 언제 도착하는지 계산하는 프로그램을 작성합니다.
도시는 개의 교차로와 개의 도로로 표현됩니다. 각 도로에 대해 시작 교차로 , 끝 교차로 , 이동 시간 이 주어집니다. 어떤 쌍 가 목록에 나타나지 않으면 에서 로 가는 직접 도로가 없다는 뜻입니다. 도로에는 방향이 있으므로 에서 로 가는 시간이 에서 로 가는 시간과 다를 수 있습니다(일방통행이거나 방향에 따라 교통 상황이 다를 수 있기 때문입니다). 또한 모든 차량의 출발 교차로와 목적지(범죄 현장) 교차로가 각각 교차로 번호로 주어집니다.
입력
첫 번째 줄에 세 정수 가 주어집니다. 은 교차로의 수, 은 도로의 수, 는 이어지는 시나리오의 수입니다. 이어서 개의 줄에 각 도로가 주어지며, 각 줄에는 시작 교차로 , 끝 교차로 , 이동 시간 (실수)이 공백으로 구분되어 주어집니다.
그다음 개의 시나리오가 주어집니다. 각 시나리오의 첫 번째 줄에는 두 정수 가 주어집니다. 는 범죄가 발생한 교차로 번호, 는 출동한 차량의 수입니다. 다음 줄에는 개의 정수가 공백 하나로 구분되어 주어지며, 각각 대의 차량이 출발한 교차로 번호입니다.
출력
각 시나리오마다 먼저 "Scenario x:" 를 한 줄에 출력합니다. 여기서 는 시나리오 번호(1부터 시작)입니다. 다음 줄에는 어떤 차량이든 범죄 현장 에 가장 먼저 도착하는 시각을 소수점 아래 둘째 자리까지 반올림한 실수로 출력합니다. 어떤 차량도 목적지 교차로에 도달할 수 없으면 대신 "Impossible." 을 출력합니다. 연속한 두 시나리오 사이는 빈 줄 하나로 구분합니다.