0과 h 사이로 잘리는 확률 보행에서 각 단계의 이동 확률이 주어질 때, 구간 n에 대한 지형 아래 기대 넓이를 구한다.
보통5확률동적 계획법수학구현면접 대비아직 제출이 없습니다시간 제한6초메모리 제한512 MB앤드루는 Front Nine이라는 2차원 골프 코스를 만든다. 홀 하나의 길이는 정확히 n이다. 서로 다른 홀을 많이 만들려고 무작위 알고리즘으로 지형을 생성한다. 홀 하나는 함수 y:[0,n]→[0,h]로 정의된다. 이 함수는 구간 [0,n]의 각 x좌표에서 그 지점의 지형 높이를 0 이상 h 이하의 값으로 알려 준다.
앤드루가 홀 하나를 만드는 무작위 알고리즘은 다음과 같다.
1단계 y(0)=a로 둔다.
2단계 각 i=1,2,…,n에 대해
y(i)=fix(y(i−1)+r(i))
로 둔다. r(i)는 집합 {−1,0,1}에서 고른 무작위 정수이고, 각 값이 나올 확률은 차례로 P−1, P0, P1 퍼센트다 (P−1+P0+P1=100). fix는 출력을 구간 [0,h] 안으로 자르는 함수다.
fix(y)=⎩⎨⎧0yh(y<0)(0≤y≤h)(h<y)
3단계 i=0,1,…,n에 대한 y(i)를 모두 구한 뒤, 각 구간 (i,i+1)을 점 (i,y(i))와 점 (i+1,y(i+1))을 잇는 직선으로 채운다.
4단계 y 아래의 영역을 전부 흙으로 채운다.

그림 F.1: n=9, h=6, a=3인 예시. 흙의 넓이는 42.5다. 가능한 r 하나는 r(1)=1, r(2)=1, r(3)=−1, r(4)=0, r(5)=1, r(6)=1, r(7)=1, r(8)=−1, r(9)=−1이다.
앤드루는 홀을 많이 만들 생각이라 흙이 얼마나 필요한지 알아야 한다. 홀 하나마다 지형 아래 넓이의 기댓값을 구하라.
한 줄에 여섯 정수 n, h, a, P−1, P0, P1이 주어진다. n은 홀의 길이 (1≤n≤100000), h는 홀의 최대 높이 (0≤h≤100), a는 x=0에서의 높이 (0≤a≤h)다. P−1, P0, P1은 r가 각각 −1, 0, 1일 확률이고 (0≤P−1≤100, 0≤P0≤100, 0≤P1≤100), P−1+P0+P1=100이다.
지형 아래 넓이의 기댓값을 소수점 아래 여섯째 자리까지 반올림해 출력한다. 소수점 아래 자리는 값에 상관없이 항상 여섯 개를 모두 적는다.