Submission #3780100


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
long long int D;
int N;
int memo[101][75][40][20];
long int P(int i,int a,int b,int c){
    if(memo[i][a][b][c] != -1) return memo[i][a][b][c];
    int ans=0;
    if(i == 1){
        for(int j=1;j<=6;j++){
            if(j % (int)(pow(2,a)*pow(3,b)*pow(5,c)) == 0) ans++;
        }
        return memo[1][a][b][c] = ans;
    }
    if(memo[i][a][b][c] != -1) return memo[i][a][b][c];
    ans = P(i-1,a,b,c) + P(i-1,max(a-1,0),b,c) + P(i-1,a,max(b-1,0),c) + P(i-1,max(a-2,0),b,c) + P(i-1,a,b,max(c-1,0)) + P(i-1,max(a-1,0),max(b-1,0),c);
    return memo[i][a][b][c] = ans;
}

int main(){
    for(int q=0;q<101;q++){
        for(int w=0;w<75;w++){
            for(int e=0;e<40;e++){
                for(int r=0;r<20;r++) memo[q][w][e][r] = -1;
            }
        }
    }
    cin >> N >> D;
    int a=0;
    int b=0;
    int c=0;
    while(D%2 == 0){
        D = D/2;
        a++;
    }
    while(D%3 == 0){
        D = D/3;
        b++;
    }
    while(D%5 == 0){
        D = D/5;
        c++;
    }
    if(D != 1) cout << 0 << endl;
    else cout << fixed << setprecision(10) << P(N,a,b,c) / (long double)powl(6,N) << endl;
    return 0;
}

Submission Info

Submission Time
Task D - サイコロ
User youjo
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1232 Byte
Status WA
Exec Time 15 ms
Memory 23936 KB

Judge Result

Set Name All
Score / Max Score 0 / 4
Status
AC × 5
WA × 8
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 12 ms 23936 KB
01 WA 15 ms 23936 KB
02 WA 14 ms 23936 KB
03 WA 13 ms 23936 KB
04 WA 12 ms 23936 KB
05 WA 15 ms 23936 KB
06 WA 15 ms 23936 KB
07 WA 14 ms 23936 KB
08 AC 13 ms 23936 KB
09 WA 12 ms 23936 KB
10 AC 12 ms 23936 KB
90 AC 12 ms 23936 KB
91 AC 12 ms 23936 KB