이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <stdio.h>
const long long mod = 1000000007;
long long pow(long long a, long long p)
{
long long r = 1;
while (p){
if (p & 1) r = r * a % mod;
a = a * a % mod;
p /= 2;
}
return r;
}
long long inv(long long a)
{
return pow(a,mod-2);
}
long long D[1010][1010];
int main()
{
int T; scanf ("%d",&T); while (T--){
long long r,g,b,k;
scanf ("%lld %lld %lld %lld",&r,&g,&b,&k);
static int first = 0;
if (!first){
first = 1;
for (int j=1;j<=1000;j++){
D[0][j] = j * (1 + g * inv(b) % mod) % mod;
}
for (int i=1;i<=1000;i++){
long long v = inv(i+b);
for (int j=1;j<=1000;j++){
long long s = (i * D[i-1][j] + b * D[i][j-1] + i + g + b) % mod;
D[i][j] = s * v % mod;
}
}
}
printf ("%lld\n",D[r][k]);
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |