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 |
|
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 |