Submission #2114244
Source Code Expand
#include <bits/stdc++.h> using namespace std; int main() { int64_t n, d; cin >> n >> d; double dp[n + 1][60][60][60]{}; dp[0][0][0][0] = 1; for (int i = 0; i < n; i++) { for (int j = 0; j < 60; j++) { for (int k = 0; k < 60; k++) { for (int l = 0; l < 60; l++) { dp[i + 1][j][k][l] += dp[i][j][k][l] / 6; dp[i + 1][min(59, j + 1)][k][l] += dp[i][j][k][l] / 6; dp[i + 1][j][min(59, k + 1)][l] += dp[i][j][k][l] / 6; dp[i + 1][min(59, j + 2)][k][l] += dp[i][j][k][l] / 6; dp[i + 1][j][k][min(59, l + 1)] += dp[i][j][k][l] / 6; dp[i + 1][min(59, j + 1)][min(59, k + 1)][l] += dp[i][j][k][l] / 6; } } } } int a = 0, b = 0, c = 0; while (d % 2 == 0) { a++; d /= 2; } while (d % 3 == 0) { b++; d /= 3; } while (d % 5 == 0) { c++; d /= 5; } if (d != 1) { cout << 0 << endl; return 0; } double ans = 0; for (int j = a; j < 60; j++) { for (int k = b; k < 60; k++) { for (int l = c; l < 60; l++) { ans += dp[n][j][k][l]; } } } cout << fixed << setprecision(10) << ans << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - サイコロ |
User | jbyxm |
Language | C++14 (GCC 5.4.1) |
Score | 4 |
Code Size | 1126 Byte |
Status | AC |
Exec Time | 472 ms |
Memory | 170624 KB |
Judge Result
Set Name | All | ||
---|---|---|---|
Score / Max Score | 4 / 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 | 126 ms | 55936 KB |
01 | AC | 371 ms | 141952 KB |
02 | AC | 333 ms | 130176 KB |
03 | AC | 142 ms | 62720 KB |
04 | AC | 138 ms | 61056 KB |
05 | AC | 412 ms | 153856 KB |
06 | AC | 365 ms | 140288 KB |
07 | AC | 343 ms | 133504 KB |
08 | AC | 67 ms | 30592 KB |
09 | AC | 327 ms | 128512 KB |
10 | AC | 472 ms | 170624 KB |
90 | AC | 10 ms | 5248 KB |
91 | AC | 14 ms | 7040 KB |