Submission #5374629


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;

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

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

    double ans = 0;
    REP(j, fac[2], 63) {
        REP(k, fac[3], 62) {
            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 2000 Byte
Status WA
Exec Time 428 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 131 ms 63872 KB
01 WA 386 ms 164224 KB
02 WA 345 ms 149888 KB
03 AC 148 ms 72064 KB
04 AC 143 ms 70016 KB
05 WA 428 ms 176512 KB
06 WA 380 ms 162176 KB
07 WA 356 ms 153984 KB
08 AC 70 ms 35200 KB
09 WA 339 ms 147840 KB
10 AC 1 ms 256 KB
90 AC 10 ms 4480 KB
91 AC 14 ms 6528 KB