동전 던지기

모두 뒷면인 동전 N개에 대해 K번의 공정한 던지기를 적응적으로 선택할 때, 마지막에 앞면인 동전 수의 최댓값 기댓값을 구한다.

보통7확률동적 계획법그리디아직 제출이 없습니다시간 제한4초메모리 제한512 MB

문제

동전 NN개를 한 줄로 놓는다. 처음에는 모든 동전이 뒷면이 위를 향하고 있다. 이제 정확히 KK번, 동전 하나를 골라 공중에 던진 뒤 원래 자리에 다시 내려놓는다. 떨어진 동전은 확률 1/21/2로 앞면이 위가 되고, 확률 1/21/2로 뒷면이 위가 된다. KK번을 모두 마친 뒤 앞면이 위인 동전은 모두 가져간다.

던질 동전은 그때까지 나온 결과를 보고 매번 새로 고른다. KK번은 반드시 모두 던져야 하며, 모든 동전이 이미 앞면이어도 멈출 수 없다.

마지막에 가져가는 동전 개수의 기댓값이 가장 커지도록 동전을 고를 때, 그 기댓값을 구하라.

입력

첫째 줄에 두 정수 NNKK가 공백으로 구분되어 주어진다. NN은 동전의 개수이고 (1N4001 \le N \le 400), KK는 반드시 수행해야 하는 던지기 횟수이다 (1K4001 \le K \le 400).

출력

마지막에 앞면인 동전 개수의 기댓값의 최댓값을 소수점 아래 여섯째 자리까지 반올림하여 한 줄에 출력한다. 소수점 아래 여섯 자리를 모두 적고, 정확히 중간인 값은 올림한다.