Submission #102354


Source Code Expand

#include<cstdio>
#include<vector>
#include<iostream>
using namespace std;
typedef long long LL;

typedef vector<double> Poly;

// a*b where x^n = c
Poly mulPoly(const Poly&a, const Poly&b, const Poly&c) {
    int n=a.size();
    Poly r(n*2);
    for (int i=0; i<n; i++) {
        for (int j=0; j<n; j++) {
            r[i+j] = (r[i+j]+a[i]*b[j]);
        }
    }
    for (int i=n*2; i-->n; ) {
        for (int j=1; j<=n; j++) {
            r[i-j] = (r[i-j]+r[i]*c[n-j]);
        }
    }
    r.resize(n);
    return r;
}

Poly powPoly(Poly a, LL y, const Poly&c) {
    int n = a.size();
    Poly r(n);
    r[0]=1;
    for (;y; y>>=1) {
        if (y&1) r = mulPoly(r, a, c);
        a = mulPoly(a, a, c);
    }
    return r;
}


int main() {
    double p, q, r;
    LL N, K, M;
    cin >> p >> q >> r;
    cin >> N >> K >> M;

    vector<double> v(N*K+1);
    double base = p+q+r;
    v[0] += -r / base;
    v[1] += r / base;
    v[N*(K-1)] += -p /base;
    v[N*(K-1) + 1] += p / base;
    v[N*K-1] += -q / base;
    v[N*K] += (p+2*q+r) / base;

    vector<double>alpha(N*K+1);
    for (int i=1; i<=N*K; i++) {
        alpha[i] = (i>=N ? p*alpha[i-N] : 0) 
            + (i>=1 ? q*alpha[i-1] : 0)
            + (i>=N*K ? r*alpha[i-N*K] : 0)
            + 1;
        alpha[i] /= base;
    }

    Poly beta(N*K+1);
    beta[1]=1;
    beta = powPoly(beta, N*M, v);

    double ans=0;
    for (int i=0; i<N*K+1; i++) ans += beta[i] * alpha[i];

    printf("%.9f\n", ans);

    return 0;
}

Submission Info

Submission Time
Task B - Cans of Toys
User YellowYell
Language C++ (GCC 4.4.7)
Score 0
Code Size 1558 Byte
Status WA
Exec Time 479 ms
Memory 932 KB

Judge Result

Set Name all
Score / Max Score 0 / 100
Status
AC × 25
WA × 24
Set Name Test Cases
all 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 4, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 5, 6, 7, 8, 9
Case Name Status Exec Time Memory
1 AC 21 ms 800 KB
10 AC 23 ms 800 KB
11 AC 21 ms 792 KB
12 AC 22 ms 804 KB
13 AC 87 ms 804 KB
14 AC 35 ms 800 KB
15 AC 21 ms 748 KB
16 AC 27 ms 932 KB
17 AC 68 ms 924 KB
18 WA 348 ms 928 KB
19 WA 38 ms 928 KB
2 AC 21 ms 804 KB
20 WA 27 ms 808 KB
21 WA 27 ms 928 KB
22 WA 45 ms 804 KB
23 WA 22 ms 800 KB
24 AC 21 ms 924 KB
25 AC 21 ms 740 KB
26 AC 23 ms 768 KB
27 AC 99 ms 808 KB
28 AC 21 ms 804 KB
29 AC 21 ms 804 KB
3 AC 21 ms 932 KB
30 AC 21 ms 800 KB
31 AC 101 ms 924 KB
32 WA 20 ms 928 KB
33 WA 20 ms 800 KB
34 WA 22 ms 924 KB
35 WA 479 ms 928 KB
36 WA 22 ms 928 KB
37 WA 21 ms 928 KB
38 WA 22 ms 804 KB
39 WA 477 ms 800 KB
4 AC 22 ms 792 KB
40 WA 204 ms 932 KB
41 WA 283 ms 928 KB
42 WA 183 ms 800 KB
43 WA 244 ms 788 KB
44 WA 196 ms 804 KB
45 WA 64 ms 928 KB
46 WA 264 ms 804 KB
47 WA 186 ms 800 KB
48 WA 228 ms 800 KB
49 WA 87 ms 804 KB
5 AC 99 ms 804 KB
6 AC 22 ms 808 KB
7 AC 21 ms 804 KB
8 AC 20 ms 800 KB
9 AC 20 ms 792 KB