주사위 놀이의 승리 확률
면접 대비시간 제한1초메모리 제한512 MB
0부터 N까지의 상태를 오가며 Q/P의 확률로 1 감소, 그렇지 않으면 1 증가하는 게임에서 N에서 끝날 확률을 기약분수로 구해 1e9+7로 나눈 값을 출력한다.
문제
면체 주사위를 굴린다. 각 면에는 이상 이하의 자연수가 하나씩 적혀 있고, 한 번 굴렸을 때 각 면이 나올 확률은 모두 같다.
다음 놀이를 한다.
- 처음에 수 를 가지고 있다.
- 가지고 있는 수가 이거나 이면 놀이를 끝낸다.
- 그렇지 않으면 주사위를 한 번 굴린다. 나온 수가 이하이면 가지고 있는 수에서 을 빼고, 보다 크면 을 더한다. 그다음 두 번째 규칙으로 돌아가 반복한다.
놀이가 끝났을 때 가지고 있는 수가 일 확률을 구하는 프로그램을 작성하라.
입력
첫째 줄에 정수 가 주어진다. ()
둘째 줄에 정수 가 주어진다. ()
셋째 줄에 정수 이 주어진다. ()
넷째 줄에 정수 가 주어진다. ()
출력
놀이가 끝났을 때 가지고 있는 수가 일 확률을 출력한다. 정확하게 판정하기 위해, 답을 기약분수로 나타낸 것을 라 할 때 을 대신 출력한다. 은 을 법으로 하는 의 곱셈 역원이다. 주어지는 모든 입력에 대해 답이 존재한다.