Submission #6360752


Source Code Expand

from collections import Counter
from math import log
N, D = map(int, input().split())

def gfct(M):
    C = Counter()
    def fct(m):
        if m < 2:
            return 1
        r = m
        for i in range(2, int(m**0.5)+1):
            if m % i == 0:
                r = i
                break
        C.update([r])
        return m // r

    m = fct(M)
    while m != 1:
        m = fct(m)
    return C

C = gfct(D)
if max(C.keys()) <= 5:
    dp = [[[[0 for _ in range(C[5]+1)] for _ in range(C[3]+1)] for _ in range(C[2]+1)] for _ in range(N+1)]

    dp[0][0][0][0] = 1

    lut = [[0, 0, 0], [1, 0, 0], [0, 1, 0], [2, 0, 0], [0, 0, 1], [1, 1, 0]]

    for i in range(1,N+1):
        for a in range(C[2]+1):
            for b in range(C[3]+1):
                for c in range(C[5]+1):
                    for l in lut:
                        dp[i][min(a+l[0],C[2])][min(b+l[1],C[3])][min(c+l[2],C[5])] += dp[i-1][a][b][c] * 1/6

    print(dp[-1][-1][-1][-1])
else:
    print(0)

Submission Info

Submission Time
Task D - サイコロ
User qython
Language PyPy3 (2.4.0)
Score 4
Code Size 1026 Byte
Status AC
Exec Time 360 ms
Memory 52060 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 227 ms 43120 KB
01 AC 287 ms 48240 KB
02 AC 251 ms 45424 KB
03 AC 254 ms 45808 KB
04 AC 248 ms 44896 KB
05 AC 288 ms 47984 KB
06 AC 296 ms 52060 KB
07 AC 268 ms 47600 KB
08 AC 255 ms 44912 KB
09 AC 225 ms 43376 KB
10 AC 360 ms 38512 KB
90 AC 166 ms 38384 KB
91 AC 164 ms 38256 KB