Submission #3014647
Source Code Expand
#include <iostream> #include <iomanip> using ll = long long; using namespace std; double dp[3][101][201]; int main() { int n; int l[3] = {2,3,5}; int ld[3] = {}; ll d; cin >> n >> d; for (int i = 0; i < 3; ++i) { while (d % l[i] == 0){ d /= l[i]; ld[i]++; } } if(d != 1){ cout << setprecision(12) << 0.0 << "\n"; } fill_n(&dp[0][0][0], 60903, 0.0); for (int i = 0; i < 3; ++i) { dp[i][0][0] = 1.0; for (int j = 1; j <= n; ++j) { for(int k = 200; k >= 0; k--){ if (i == 0){ dp[i][j][k]= dp[i][j-1][k]/2 + (k < 1 ? 0 : dp[i][j-1][k-1]/3) + (k < 2 ? 0 : dp[i][j-1][k-2]/6); }else if (i == 1) { dp[i][j][k] = dp[i][j-1][k]*2/3+ (k < 1 ? 0 :dp[i][j-1][k-1]/ 3); }else { dp[i][j][k] = dp[i][j-1][k]*5/6+ dp[i][j-1][k]/6; } } } } double ans = 1.0; for (int i = 0; i < 3; ++i) { double w = 0; for (int j = ld[i]; j < 202; ++j) { w += dp[i][n][j]; } ans *= w; } cout << setprecision(14) << ans << "\n"; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - サイコロ |
User | firiexp |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 1493 Byte |
Status | WA |
Exec Time | 2 ms |
Memory | 768 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 | 2 ms | 768 KB |
01 | WA | 2 ms | 768 KB |
02 | WA | 2 ms | 768 KB |
03 | WA | 2 ms | 768 KB |
04 | WA | 1 ms | 768 KB |
05 | WA | 2 ms | 768 KB |
06 | WA | 2 ms | 768 KB |
07 | AC | 2 ms | 768 KB |
08 | AC | 1 ms | 768 KB |
09 | WA | 2 ms | 768 KB |
10 | WA | 2 ms | 768 KB |
90 | AC | 1 ms | 768 KB |
91 | AC | 1 ms | 768 KB |