제비뽑기
시간 제한2초메모리 제한512 MB
빨간 제비는 버리고 초록과 파란 제비는 다시 넣을 때, 파란 제비를 K번 뽑을 때까지의 기대 뽑기 횟수를 구한다.
문제
그는 시간이 날 때마다 제비뽑기를 한다. 아무 규칙 없이 뽑기만 하니 재미가 없어서, 뽑은 제비의 색에 따라 지켜야 할 규칙을 정했다.
끝을 빨간색으로 칠한 제비가 개, 초록색으로 칠한 제비가 개, 파란색으로 칠한 제비가 개 있다. 색칠한 쪽이 보이지 않도록 제비를 모두 통에 넣고 잘 섞은 다음 하나씩 뽑는다. 매번 잘 섞으므로 통에 남아 있는 제비는 모두 같은 확률로 뽑힌다. 뽑은 제비의 색에 따라 다음과 같이 한다.
- 빨간 제비를 뽑으면 그 제비를 버린다.
- 초록 제비를 뽑으면 그 제비를 통에 다시 넣고 섞는다.
- 파란 제비를 뽑으면 그 제비를 통에 다시 넣고 섞는다. 파란 제비를 뽑은 횟수가 번이 되면 제비뽑기를 끝내고 자러 간다.
자러 갈 때까지 뽑는 제비 개수의 기댓값을 구하는 프로그램을 작성하라.
입력
첫째 줄에 테스트 케이스의 개수 ()가 주어진다.
각 테스트 케이스는 한 줄로 이루어진다. 빨간 제비의 개수 , 초록 제비의 개수 , 파란 제비의 개수 , 자러 가기까지 뽑아야 하는 파란 제비의 횟수 가 공백으로 구분되어 주어진다. 네 수는 모두 이상 이하의 정수이다.
출력
각 테스트 케이스마다 자러 갈 때까지 뽑는 제비 개수의 기댓값을 한 줄에 출력한다.
기댓값을 기약분수 로 나타냈을 때, 을 1,000,000,007로 나눈 나머지를 출력한다. 여기서 은 1,000,000,007을 법으로 하는 의 곱셈 역원이다. 주어지는 모든 입력에 대해 답이 존재한다.
힌트
, , , 이면 기댓값은 이다. 1,000,000,007을 법으로 하는 의 역원이 이므로, 를 1,000,000,007로 나눈 나머지인 을 출력한다.