주사위 놀이의 승리 확률

0부터 N까지의 상태를 오가며 Q/P의 확률로 1 감소, 그렇지 않으면 1 증가하는 게임에서 N에서 끝날 확률을 기약분수로 구해 1e9+7로 나눈 값을 출력한다.

보통6동적 계획법확률수학면접 대비아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

PP면체 주사위를 굴린다. 각 면에는 11 이상 PP 이하의 자연수가 하나씩 적혀 있고, 한 번 굴렸을 때 각 면이 나올 확률은 모두 같다.

다음 놀이를 한다.

  • 처음에 수 KK를 가지고 있다.
  • 가지고 있는 수가 00이거나 NN이면 놀이를 끝낸다.
  • 그렇지 않으면 주사위를 한 번 굴린다. 나온 수가 QQ 이하이면 가지고 있는 수에서 11을 빼고, QQ보다 크면 11을 더한다. 그다음 두 번째 규칙으로 돌아가 반복한다.

놀이가 끝났을 때 가지고 있는 수가 NN일 확률을 구하는 프로그램을 작성하라.

입력

첫째 줄에 정수 PP가 주어진다. (1P1001 \le P \le 100)

둘째 줄에 정수 QQ가 주어진다. (0QP0 \le Q \le P)

셋째 줄에 정수 NN이 주어진다. (1N1001 \le N \le 100)

넷째 줄에 정수 KK가 주어진다. (0KN0 \le K \le N)

출력

놀이가 끝났을 때 가지고 있는 수가 NN일 확률을 출력한다. 정확하게 판정하기 위해, 답을 기약분수로 나타낸 것을 a/ba/b라 할 때 (a×b1)mod1,000,000,007(a \times b^{-1}) \bmod 1{,}000{,}000{,}007을 대신 출력한다. b1b^{-1}1,000,000,0071{,}000{,}000{,}007을 법으로 하는 bb의 곱셈 역원이다. 주어지는 모든 입력에 대해 답이 존재한다.