떠돌이 로봇
시간 제한15초메모리 제한1024 MB
직사각형 구멍이 뚫린 W x H 격자에서 로봇이 오른쪽이나 아래로 무작위 이동할 때, 구멍에 빠지지 않고 오른쪽 아래 칸에 도착할 확률을 구한다.
문제
Jemma는 로봇 대회에 참가한다. 오늘의 과제는 경기장에 뚫린 구멍을 피해 이동하는 로봇을 만드는 것이다.
경기장은 W개의 열(왼쪽에서 오른쪽으로 1부터 W까지)과 H개의 행(위에서 아래로 1부터 H까지)으로 이루어진 격자이다. x번째 열과 y번째 행의 칸을 (x, y)로 나타낸다. 로봇은 왼쪽 위 칸 (1,1)에서 출발해 오른쪽 아래 칸 (W, H)으로 이동해야 한다.
격자에서 직사각형 모양의 부분 격자가 잘려 나갔다. 구체적으로, 왼쪽 위 칸이 (L, U)이고 오른쪽 아래 칸이 (R, D)인 직사각형에 속하는 모든 칸이 제거되었다.
Jemma는 로봇을 프로그래밍할 시간이 많지 않아서, 로봇은 아주 단순한 알고리즘을 따른다:
- 로봇이 가장 오른쪽 열에 있으면 항상 바로 아래 칸으로 이동한다. 그렇지 않고,
- 로봇이 가장 아래쪽 행에 있으면 항상 바로 오른쪽 칸으로 이동한다. 그렇지 않으면,
- 로봇은 바로 오른쪽 칸으로 이동할지 바로 아래 칸으로 이동할지를 같은 확률로 무작위로 선택한다.
Jemma의 로봇이 구멍에 빠지지 않고 (W, H) 칸에 도착하면 Jemma는 과제를 통과한다. Jemma가 과제를 통과할 확률은 얼마인가?
입력
입력의 첫 줄에는 테스트 케이스의 수 T가 주어진다. T개의 테스트 케이스가 이어지며, 각 테스트 케이스는 W, H, L, U, R, D를 포함한 한 줄로 이루어진다.
출력
각 테스트 케이스마다 Case #x: y를 한 줄에 출력한다. 여기서 x는 테스트 케이스 번호(1부터 시작)이고, y는 Jemma가 과제를 통과할 확률을 나타내는 0과 1 사이(양 끝 포함)의 실수이다.
y는 정답과의 절대 오차 또는 상대 오차가 10-5 이내이면 정답으로 간주된다.
제한
- 1 ≤ T ≤ 100.
- 1 ≤ U ≤ D ≤ H.
- 1 ≤ L ≤ R ≤ W.
- 왼쪽 위 칸과 오른쪽 아래 칸은 제거되지 않는다.