확률

A부터 D까지 각 문자의 등장 확률이 주어질 때, n칸을 알파벳 순서로 채우도록 최선으로 플레이했을 때 성공할 확률을 구한다.

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

문제

페리차는 새 컴퓨터 게임 "슬로브체카"에 푹 빠져 있다. 화면 아래쪽에는 처음에 모두 비어 있는 칸 nn개가 한 줄로 놓여 있고, 화면 위쪽에는 A, B, C, D 중 하나인 글자가 하나씩 차례로 나타난다. 각 글자는 앞서 나온 글자와 독립적으로 무작위로 정해진다. 글자가 나타나면 페리차는 곧바로 그 글자를 아직 비어 있는 칸 중 하나에 넣어야 한다. 모든 칸이 채워지면 게임이 끝나며, 페리차의 목표는 다 채워진 줄의 글자가 왼쪽부터 알파벳 오름차순으로 놓이게 하는 것이다. 같은 글자는 여러 번 나와도 되고 서로 이웃해도 된다.

A, B, C, D가 각각 나타날 확률이 주어질 때, 페리차가 최적으로 플레이하면 목표를 이룰 확률을 구하시오.

입력

첫째 줄에 칸의 개수이자 나타나는 글자의 개수인 자연수 nn (1n2501 \le n \le 250)이 주어진다.

둘째 줄에 정수 aa, bb, cc, dd (0a,b,c,d1000 \le a, b, c, d \le 100, a+b+c+d=100a + b + c + d = 100)가 주어진다. 차례대로 글자 A, B, C, D가 나타날 확률을 퍼센트로 나타낸 값이다.

출력

첫째 줄에 구한 확률을 소수점 아래 여섯째 자리까지 반올림하여 출력한다. 예를 들어 확률이 0.750.75이면 0.750000을, 11이면 1.000000을 출력한다.

모든 테스트 데이터에서 정확한 확률은 소수점 아래 여섯째 자리 반올림의 경계값에서 충분히 떨어져 있다.