누가 늑대를 무서워하랴?

면접 대비

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

요약
시작점에서 도착점까지 간선 안전 확률의 곱이 가장 큰 방향 경로를 찾아 소수점 여섯 자리까지 출력합니다.
난이도

보통10점 중 4점

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

문제

빨간 모자가 할머니 댁으로 걸어가고 있다. 빨간 모자는 늑대의 블로그를 꼬박꼬박 읽는데, 그 블로그에는 늑대와 친구들이 지키는 길이 적혀 있다. 늑대는 정보를 그대로 흘리지 않아서, 각 길에 늑대가 없을 확률만 블로그에 올린다. 늑대가 지키는 길로 들어서면 빨간 모자는 잡아먹힌다. 숲의 길은 모두 일방통행이라 지나온 길을 거슬러 갈 수 없다.

빨간 모자가 할머니 댁에 도착할 확률의 최댓값을 구하자.

아래 그림은 첫 번째 예제를 나타낸다.

입력

첫째 줄에 테스트 케이스의 개수가 주어진다.

각 테스트 케이스의 첫째 줄에는 교차로의 개수 NN (1≤N≤1001 \le N \le 100)이 주어진다. 둘째 줄에는 출발 교차로 XX와 도착 교차로 YY (1≤X,Y≤N1 \le X, Y \le N)가 공백 하나로 구분되어 주어진다. XX에서 YY로 가는 경로는 항상 존재한다. 셋째 줄에는 일방통행 길의 개수 MM (0≤M≤50000 \le M \le 5000)이 주어진다. 이어지는 MM개의 줄에는 각각 길의 시작 교차로 AA, 끝 교차로 BB, 그 길에 늑대가 없어 안전할 확률 PP (0.000<P≤1.0000.000 < P \le 1.000)가 공백으로 구분되어 주어진다. 같은 두 교차로를 잇는 길이 여러 개일 수도 있다. 확률은 소수점 아래 최대 세 자리까지 주어진다.

출력

각 테스트 케이스마다 Case x: p 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, pp는 가장 안전한 경로로 갔을 때 빨간 모자가 할머니 댁에 도착할 확률이다.

pp는 소수점 아래 여섯째 자리까지 반올림하고, 뒤에 붙는 0도 그대로 출력한다. 지수 표기는 쓰지 않는다. 모든 테스트에서 정답은 반올림 경계에서 10−910^{-9}보다 멀리 떨어져 있으므로 반올림 결과는 하나로 정해진다.

XX와 YY가 같으면 빨간 모자는 이미 할머니 댁에 있으므로 답은 11이다.

예제2

  1. 예제 1

    입력
    2
    3
    1 3
    3
    1 2 0.950
    1 3 0.700
    2 3 0.900
    5
    1 5
    6
    1 2 0.850
    2 3 0.550
    1 3 0.500
    1 5 0.200
    3 5 0.500
    2 3 0.700
    
    예상 출력
    Case 1: 0.855000
    Case 2: 0.297500
    
  2. 예제 2

    입력
    2
    1
    1 1
    0
    2
    1 2
    2
    1 2 0.250
    1 2 0.400
    
    예상 출력
    Case 1: 1.000000
    Case 2: 0.400000