2ⁿ 부자가 되고 싶나요?

시간 제한1초메모리 제한128 MB

문제

참가자는 상금 $1로 시작하며, 총 $n$개의 문제를 순서대로 받습니다. 각 문제에서 참가자는 다음 중 하나를 선택할 수 있습니다.

  • 지금까지 모은 상금을 가지고 게임을 그만둔다.
  • 문제에 답한다. 틀리면 상금을 모두 잃고 게임이 끝나며, 맞히면 상금이 두 배가 되고 다음 문제로 넘어간다.

마지막 문제까지 끝나면 참가자는 상금을 가지고 게임을 마칩니다. 참가자는 상금의 기댓값을 최대로 만들고자 합니다.

각 문제가 제시되면, 참가자는 그 문제를 맞힐 확률 $p$를 스스로 가늠할 수 있습니다. 각 문제에서 $p$는 구간 $[t, 1]$ 위에서 균등하게 분포하는 확률변수라고 가정합니다.

입력

입력은 여러 줄로 이루어지며, 각 줄에는 두 개의 수가 있습니다. 정수 $n$ ($1 \le n \le 30$)과 실수 $t$ ($0 \le t \le 1$)입니다. 입력은 0 0으로만 이루어진 줄로 끝나며, 이 줄은 처리하지 않습니다.

출력

각 입력 $n$과 $t$에 대해, 참가자가 최적 전략으로 게임할 때 얻는 상금의 기댓값을 출력하세요. 소수점 아래 셋째 자리까지 반올림하여 출력합니다.