Front Nine

0과 h 사이로 잘리는 확률 보행에서 각 단계의 이동 확률이 주어질 때, 구간 n에 대한 지형 아래 기대 넓이를 구한다.

보통5확률동적 계획법수학구현면접 대비아직 제출이 없습니다시간 제한6초메모리 제한512 MB

문제

앤드루는 Front Nine이라는 2차원 골프 코스를 만든다. 홀 하나의 길이는 정확히 nn이다. 서로 다른 홀을 많이 만들려고 무작위 알고리즘으로 지형을 생성한다. 홀 하나는 함수 y:[0,n][0,h]y : [0, n] \to [0, h]로 정의된다. 이 함수는 구간 [0,n][0, n]의 각 xx좌표에서 그 지점의 지형 높이를 0 이상 hh 이하의 값으로 알려 준다.

앤드루가 홀 하나를 만드는 무작위 알고리즘은 다음과 같다.

1단계 y(0)=ay(0) = a로 둔다.

2단계i=1,2,,ni = 1, 2, \ldots, n에 대해

y(i)=fix(y(i1)+r(i))y(i) = \mathrm{fix}(y(i - 1) + r(i))

로 둔다. r(i)r(i)는 집합 {1,0,1}\{-1, 0, 1\}에서 고른 무작위 정수이고, 각 값이 나올 확률은 차례로 P1P_{-1}, P0P_0, P1P_1 퍼센트다 (P1+P0+P1=100P_{-1} + P_0 + P_1 = 100). fix\mathrm{fix}는 출력을 구간 [0,h][0, h] 안으로 자르는 함수다.

fix(y)={0(y<0)y(0yh)h(h<y)\mathrm{fix}(y) = \begin{cases} 0 & (y < 0) \\ y & (0 \le y \le h) \\ h & (h < y) \end{cases}

3단계 i=0,1,,ni = 0, 1, \ldots, n에 대한 y(i)y(i)를 모두 구한 뒤, 각 구간 (i,i+1)(i, i + 1)을 점 (i,y(i))(i, y(i))와 점 (i+1,y(i+1))(i + 1, y(i + 1))을 잇는 직선으로 채운다.

4단계 yy 아래의 영역을 전부 흙으로 채운다.

그림 F.1: n=9n = 9, h=6h = 6, a=3a = 3인 예시. 흙의 넓이는 42.5다. 가능한 rr 하나는 r(1)=1r(1) = 1, r(2)=1r(2) = 1, r(3)=1r(3) = -1, r(4)=0r(4) = 0, r(5)=1r(5) = 1, r(6)=1r(6) = 1, r(7)=1r(7) = 1, r(8)=1r(8) = -1, r(9)=1r(9) = -1이다.

앤드루는 홀을 많이 만들 생각이라 흙이 얼마나 필요한지 알아야 한다. 홀 하나마다 지형 아래 넓이의 기댓값을 구하라.

입력

한 줄에 여섯 정수 nn, hh, aa, P1P_{-1}, P0P_0, P1P_1이 주어진다. nn은 홀의 길이 (1n1000001 \le n \le 100000), hh는 홀의 최대 높이 (0h1000 \le h \le 100), aax=0x = 0에서의 높이 (0ah0 \le a \le h)다. P1P_{-1}, P0P_0, P1P_1rr가 각각 1-1, 00, 11일 확률이고 (0P11000 \le P_{-1} \le 100, 0P01000 \le P_0 \le 100, 0P11000 \le P_1 \le 100), P1+P0+P1=100P_{-1} + P_0 + P_1 = 100이다.

출력

지형 아래 넓이의 기댓값을 소수점 아래 여섯째 자리까지 반올림해 출력한다. 소수점 아래 자리는 값에 상관없이 항상 여섯 개를 모두 적는다.