抓球
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

一个箱子里有n个黑球,m个白球,小王想要连续q次从箱子里随机的取出k个球(每次取出k个后立即放回),连续q次取球k个都为黑球的概率是多少,结果对1e9+7取模。

输入描述:

第一行给出一个t,代表t组测试数据。(1<=t<=100000)

每组测试数据给出n,m,k,q。(1<=n,m,k<=1e5,k<=n+m,1<=q<=1e12)

输出描述:

对于每组测试数据输出一个结果代表概率。

示例1

输入

复制
2
2 2 1 2
3 3 2 1

输出

复制
250000002
400000003

说明

第一个样例结果为1/4,取模为1*4^(mod-2)%mod=250000002。