Submission #5375438


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, int> 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, fac[2]+1) {
            REP(k, 0, fac[3]+1) {
                REP(l, 0, fac[5]+1) {
                    // 1
                    dp[i+1][j][k][l] += dp[i][j][k][l] * 1 / 6.0;

                    // 2
                    dp[i+1][min(j+1, fac[2])][k][l] += dp[i][j][k][l] * 1 / 6.0;

                    // 3
                    dp[i+1][j][min(k+1, fac[3])][l] += dp[i][j][k][l] * 1 / 6.0;

                    // 4
                    dp[i+1][min(j+2, fac[2])][k][l] += dp[i][j][k][l] * 1 / 6.0;

                    // 5
                    dp[i+1][j][k][min(l+1, fac[5])] += dp[i][j][k][l] * 1 / 6.0;

                    // 6
                    dp[i+1][min(j+1, fac[2])][min(k+1, fac[3])][l] += dp[i][j][k][l] * 1 / 6.0;
                }
            }
        }
    }

    double ans = dp[n][fac[2]][fac[3]][fac[5]];
    cout << ans << endl;
}

Submission Info

Submission Time
Task D - サイコロ
User longtime
Language C++14 (GCC 5.4.1)
Score 4
Code Size 1581 Byte
Status AC
Exec Time 38 ms
Memory 176384 KB

Judge Result

Set Name All
Score / Max Score 4 / 4
Status
AC × 13
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 13 ms 61696 KB
01 AC 35 ms 162048 KB
02 AC 31 ms 147712 KB
03 AC 15 ms 69888 KB
04 AC 15 ms 67840 KB
05 AC 38 ms 176384 KB
06 AC 34 ms 160000 KB
07 AC 32 ms 151808 KB
08 AC 8 ms 33024 KB
09 AC 30 ms 147712 KB
10 AC 1 ms 256 KB
90 AC 2 ms 2304 KB
91 AC 2 ms 4352 KB