Submission #2114242


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

int main() {
	int64_t n, d;
	cin >> n >> d;
	double dp[n + 1][71][71][71]{};
	dp[0][0][0][0] = 1;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < 71; j++) {
			for (int k = 0; k < 71; k++) {
				for (int l = 0; l < 71; l++) {
					dp[i + 1][j][k][l] += dp[i][j][k][l] / 6;
					dp[i + 1][min(70, j + 1)][k][l] += dp[i][j][k][l] / 6;
					dp[i + 1][j][min(70, k + 1)][l] += dp[i][j][k][l] / 6;
					dp[i + 1][min(70, j + 2)][k][l] += dp[i][j][k][l] / 6;
					dp[i + 1][j][k][min(70, l + 1)] += dp[i][j][k][l] / 6;
					dp[i + 1][min(70, j + 1)][min(70, 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 < 71; j++) {
		for (int k = b; k < 71; k++) {
			for (int l = c; l < 71; 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 0
Code Size 1126 Byte
Status RE
Exec Time 650 ms
Memory 254720 KB

Judge Result

Set Name All
Score / Max Score 0 / 4
Status
AC × 12
RE × 1
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 206 ms 92544 KB
01 AC 587 ms 235136 KB
02 AC 527 ms 215552 KB
03 AC 233 ms 103680 KB
04 AC 226 ms 100864 KB
05 AC 650 ms 254720 KB
06 AC 578 ms 232320 KB
07 AC 544 ms 221184 KB
08 AC 110 ms 50560 KB
09 AC 519 ms 212736 KB
10 RE 98 ms 256 KB
90 AC 15 ms 8576 KB
91 AC 22 ms 11392 KB