Submission #19413

# Submission time Handle Problem Language Result Execution time Memory
19413 2016-02-24T11:28:22 Z imsifile Ω (kriii4_P3) C++
100 / 100
0 ms 1084 KB
#include<stdio.h>
#define mod 1000000007

typedef long long lld;
lld a, b, sum;

lld exp(lld a, lld b){
	if(b==0)return 1;
	lld k=exp(a, b/2);
	k=(k*k)%mod;
	if(b%2)k=(k*a)%mod;
	return k;
}

int n, k;
lld p, q, pq, mpq, dy[111], re;
double pr, d2[111];

int main(){
	int n, i;
	scanf("%lld%lld%d%d", &p, &q, &n, &k);
	if(k==0){puts("0"); return 0;}
	if(k==n){puts("1"); return 0;}
	if(p==q){puts("0"); return 0;}
	if(q==0){puts("1"); return 0;}

	pr = (double)q/p;
	pq = q*exp(p,mod-2)%mod, mpq = (mod-pq)%mod;
	dy[1]=1;
	for(i=1; i<n; i++)dy[i+1] = (dy[i] + mpq*dy[i-1]%mod)*exp(1+mpq, mod-2)%mod;
	d2[1]=1;
	for(i=1; i<n; i++)d2[i+1] = (d2[i] - pr*d2[i-1])/(1-pr);
//	for(i=0; i<=n; i++)printf("%lf ", d2[i]/d2[n]);
//	puts("");
	printf("%lld", dy[k]*exp(dy[n],mod-2)%mod);
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 1084 KB Output is correct
2 Correct 0 ms 1084 KB Output is correct
3 Correct 0 ms 1084 KB Output is correct
4 Correct 0 ms 1084 KB Output is correct
5 Correct 0 ms 1084 KB Output is correct
6 Correct 0 ms 1084 KB Output is correct
7 Correct 0 ms 1084 KB Output is correct
8 Correct 0 ms 1084 KB Output is correct
9 Correct 0 ms 1084 KB Output is correct
10 Correct 0 ms 1084 KB Output is correct
11 Correct 0 ms 1084 KB Output is correct
12 Correct 0 ms 1084 KB Output is correct
13 Correct 0 ms 1084 KB Output is correct
14 Correct 0 ms 1084 KB Output is correct
15 Correct 0 ms 1084 KB Output is correct
16 Correct 0 ms 1084 KB Output is correct
17 Correct 0 ms 1084 KB Output is correct
18 Correct 0 ms 1084 KB Output is correct
19 Correct 0 ms 1084 KB Output is correct
20 Correct 0 ms 1084 KB Output is correct
21 Correct 0 ms 1084 KB Output is correct
22 Correct 0 ms 1084 KB Output is correct
23 Correct 0 ms 1084 KB Output is correct
24 Correct 0 ms 1084 KB Output is correct
25 Correct 0 ms 1084 KB Output is correct
26 Correct 0 ms 1084 KB Output is correct
27 Correct 0 ms 1084 KB Output is correct
28 Correct 0 ms 1084 KB Output is correct
29 Correct 0 ms 1084 KB Output is correct
30 Correct 0 ms 1084 KB Output is correct