Submission #5118510


Source Code Expand

N, D = map(int, input().split())

A, B, C = 0, 0, 0
while D%2==0:
    A += 1
    D //= 2
while D%3==0:
    B += 1
    D //= 3
while D%5==0:
    C += 1
    D //= 5

if D > 1:
    print(0)
else:
    X = [[[0] * (C+1) for _ in range(B+1)] for __ in range(A+1)]
    X[0][0][0] = 1
    for i in range(N):
        Y = [[[0] * (C+1) for _ in range(B+1)] for __ in range(A+1)]
        for a in range(A+1):
            for b in range(B+1):
                for c in range(C+1):
                    Y[min(a+1, A)][min(b+1, B)][c] += X[a][b][c]/6 # 6
                    Y[min(a+1, A)][b][c] += X[a][b][c]/6 # 2
                    Y[min(a+2, A)][b][c] += X[a][b][c]/6 # 4
                    Y[a][min(b+1, B)][c] += X[a][b][c]/6 # 3
                    Y[a][b][min(c+1, C)] += X[a][b][c]/6 # 5
                    Y[a][b][c] += X[a][b][c]/6 # 1
        X = Y
    print("{:.10f}".format(X[-1][-1][-1]))
    

Submission Info

Submission Time
Task D - サイコロ
User Kiri8128
Language Python (3.4.3)
Score 4
Code Size 926 Byte
Status AC
Exec Time 295 ms
Memory 3188 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 24 ms 3064 KB
01 AC 243 ms 3064 KB
02 AC 98 ms 3064 KB
03 AC 108 ms 3064 KB
04 AC 65 ms 3064 KB
05 AC 295 ms 3064 KB
06 AC 231 ms 3064 KB
07 AC 133 ms 3064 KB
08 AC 110 ms 3188 KB
09 AC 42 ms 3064 KB
10 AC 17 ms 3064 KB
90 AC 17 ms 3064 KB
91 AC 17 ms 3064 KB