도미노 세우기 (Dumb Bones)

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

문제

똑바로 선 도미노들을 한 줄로 세우려고 합니다. 나중에 한꺼번에 넘어뜨리며 즐기기 위해서입니다.

도미노를 세울 때 까다로운 점은, 도미노를 놓다가 실수로 넘어뜨리면 그 도미노가 한쪽 방향으로 바로 이어져 있는 도미노들까지 연쇄적으로 모두 쓰러뜨려, 그때까지의 작업 일부가 망가진다는 것입니다.

예를 들어 이미 세워 둔 도미노가 DD__DxDDD_D 와 같은 형태라고 합시다. 여기서 D는 세워진 도미노, _는 빈 자리, x는 지금 도미노를 놓으려는 위치입니다. x 위치에 놓은 도미노가 넘어지면, 왼쪽에 이어진 도미노 1개를 쓰러뜨리거나 오른쪽에 이어진 도미노 3개를 쓰러뜨릴 수 있고, 그러면 그 도미노들을 다시 세워야 합니다.

이러한 사람의 실수는 어느 정도 피할 수 없지만, 도미노가 한쪽으로 더 자주 넘어지도록 놓는 기법을 쓰면 확률을 조금 더 유리하게 만들 수 있습니다.

세우려는 도미노의 개수와, 도미노 하나를 놓을 때 그것이 왼쪽 또는 오른쪽으로 넘어질 확률이 주어질 때, 최적의 전략으로 도미노를 놓는다고 가정하고 작업을 끝내기까지 평균적으로 몇 개의 도미노를 놓아야 하는지 구하세요.

입력

입력은 최대 100개의 테스트 케이스로 이루어집니다. 각 테스트 케이스는 한 줄로 주어지며, 세워야 하는 도미노의 개수 $n$ ($1 \le n \le 1000$)과 두 개의 음이 아닌 실수 $P_l$, $P_r$이 차례로 주어집니다. $P_l$과 $P_r$은 각각 도미노를 놓을 때 왼쪽 또는 오른쪽으로 넘어질 확률이며, $0 < P_l + P_r \le 0.5$임이 보장됩니다.

마지막 테스트 케이스 다음 줄에는 0 하나만 주어지며, 이 줄은 처리하지 않습니다.

출력

각 테스트 케이스마다, 작업을 끝내기까지 놓아야 하는 도미노 개수의 기댓값을 소수점 아래 정확히 둘째 자리까지 반올림하여 한 줄에 하나씩 출력하세요.