Submission #5374700


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

#define REP(i,begin, n) for(int i=begin;i<n;i++)
typedef long long int lli;
typedef pair<int, int> P;

map<lli, lli> fac;

// dp[i][j][k][l]: i個目のサイコロを振った時点で2,3,5がそれぞれj,k,l個使われている確率
double dp[101][63][63][63];

int main() {
    int n;
    lli d;
    cin >> n >> d;

    while(d%2==0){
        d=d/2;
        fac[2]++;
    }
    while(d%3==0){
        d=d/3;
        fac[3]++;
    }
    while(d%5==0){
        d=d/5;
        fac[5]++;
    }
    if(d!=1){
        cout<<0<<endl;
        return 0;
    }

    dp[0][0][0][0] = 1.0;
    REP(i, 0, n) {
        REP(j, 0, 61) {
            REP(k, 0, 61) {
                REP(l, 0, 61) {
                    // 1
                    dp[i+1][j][k][l] += dp[i][j][k][l] * 1 / 6.0;

                    // 2
                    dp[i+1][j+1][k][l] += dp[i][j][k][l] * 1 / 6.0;

                    // 3
                    dp[i+1][j][k+1][l] += dp[i][j][k][l] * 1 / 6.0;

                    // 4
                    dp[i+1][j+2][k][l] += dp[i][j][k][l] * 1 / 6.0;

                    // 5
                    dp[i+1][j][k][l+1] += dp[i][j][k][l] * 1 / 6.0;

                    // 6
                    dp[i+1][j+1][k+1][l] += dp[i][j][k][l] * 1 / 6.0;
                    if (j == 60) {
                        // 2
                        dp[i+1][j+2][k][l] += dp[i][j+1][k][l] * 1 / 6.0;

                        // 6
                        dp[i+1][j+2][k+1][l] += dp[i][j+1][k][l] * 1 / 6.0;
                    }
                }
            }
        }
    }

    double ans = 0;
    REP(j, fac[2], 63) {
        REP(k, fac[3], 63) {
            REP(l, fac[5], 62) {
                ans += dp[n][j][k][l];
            }
        }
    }
    cout << ans << endl;
}

Submission Info

Submission Time
Task D - サイコロ
User longtime
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1893 Byte
Status WA
Exec Time 427 ms
Memory 176512 KB

Judge Result

Set Name All
Score / Max Score 0 / 4
Status
AC × 7
WA × 6
Set Name Test Cases
All 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 90, 91
Case Name Status Exec Time Memory
00 AC 130 ms 63872 KB
01 WA 385 ms 164224 KB
02 WA 344 ms 149888 KB
03 AC 147 ms 72064 KB
04 AC 143 ms 70016 KB
05 WA 427 ms 176512 KB
06 WA 379 ms 162176 KB
07 WA 355 ms 153984 KB
08 AC 69 ms 35200 KB
09 WA 338 ms 147840 KB
10 AC 1 ms 256 KB
90 AC 10 ms 4480 KB
91 AC 14 ms 6528 KB