전리품 상자
면접 대비시간 제한1초메모리 제한1024 MB
패배하거나 상품을 못 받고 이기면 당첨 확률이 오르고, 상품을 받으면 확률이 0으로 돌아갈 때 고릴라 슈트를 받을 때까지 치를 경기 수의 기댓값을 구합니다.
문제
좋아하는 온라인 게임에는 보상 시스템이 있다. 경기에서 이길 때마다 확률로 보상을 받는다. 는 시간이 지나며 다음과 같이 변한다.
- 경기에서 지면 가 만큼 증가한다.
- 경기에서 이겼지만 보상을 받지 못하면 가 만큼 증가한다.
- 경기에서 이기고 보상을 받으면 가 이 된다.
가 증가할 때마다 값은 을 넘지 않는다. 즉, 를 만큼 증가시키려 하면 는 이 된다.
개발자들은 이번 시즌 보상 중 하나가 별 모양 선글라스를 쓴 은등고릴라 슈트임을 공개했다. 당신은 이것을 갖고 싶다! 각 보상이 이 고릴라 슈트일 확률은 이다.
당신은 에서 시작한다. 경기마다 질 확률은 이다. 이 주어질 때, 은등고릴라 슈트를 얻을 때까지 치러야 하는 경기 수의 기댓값을 구하시오.
예를 들어 첫 번째 예제에서는 모든 경기에서 이기며 경기마다 보상을 반드시 받는다. 각 보상이 고릴라 슈트일 확률은 이다. 따라서 보상을 개 받으면 고릴라 슈트를 얻을 것으로 기대할 수 있다. 그러므로 기댓값으로는 고릴라 슈트를 얻는 데 경기가 걸린다.
입력
입력은 한 줄에 네 정수 (), (), (), ()를 포함한다. 이 값들의 의미는 위에서 설명한 것과 같다.
출력
은등고릴라 슈트를 얻을 때까지 치르는 경기 수의 기댓값을 출력하시오. 답의 절대 오차 또는 상대 오차는 이하여야 한다.