Submission #485601


Source Code Expand

#include <iostream>
#include <cstdio>
using namespace std;
double dp[101][65][45][35];
int main(){
	int N;
	unsigned long long int D;
	cin >> N >> D;
	int two,thr,fiv;
	for(two=0;D%2==0;D/=2)
		two++;
	for(thr=0;D%3==0;D/=3)
		thr++;
	for(fiv=0;D%5==0;D/=5)
		fiv++;
	if(D!=1)
		cout << 0 << endl;
	else{
		for(int l=0;l<=N;l++)
			for(int i=0;i<=two;i++)
				for(int j=0;j<=thr;j++)
					for(int k=0;k<=fiv;k++)
						dp[l][i][j][k]=0;
		dp[0][0][0][0]=1;
		for(int i=0;i<N;i++)
			for(int j=0;j<=two;j++)
				for(int k=0;k<=thr;k++)
					for(int l=0;l<=fiv;l++){
						dp[i+1][j][k][l]+=dp[i][j][k][l]/6;
						if(j+1<=two)
							dp[i+1][j+1][k][l]+=dp[i][j][k][l]/6;
						else
							dp[i+1][j][k][l]+=dp[i][j][k][l]/6;

						if(k+1<=thr)
							dp[i+1][j][k+1][l]+=dp[i][j][k][l]/6;
						else
							dp[i+1][j][k][l]+=dp[i][j][k][l]/6;

						if(j+2<=two)
							dp[i+1][j+2][k][l]+=dp[i][j][k][l]/6;
						else if(j+1<=two)
							dp[i+1][j+1][k][l]+=dp[i][j][k][l]/6;
						else
							dp[i+1][j][k][l]+=dp[i][j][k][l]/6;

						if(l+1<=fiv)
							dp[i+1][j][k][l+1]+=dp[i][j][k][l]/6;
						else
							dp[i+1][j][k][l]+=dp[i][j][k][l]/6;

						if(j+1<=two && k+1<=thr)
							dp[i+1][j+1][k+1][l]+=dp[i][j][k][l]/6;
						else if(j+1<=two)
							dp[i+1][j+1][k][l]+=dp[i][j][k][l]/6;
						else if(k+1<=thr)
							dp[i+1][j][k+1][l]+=dp[i][j][k][l]/6;
						else
							dp[i+1][j][k][l]+=dp[i][j][k][l]/6;
					}
		printf("%.10f\n",dp[N][two][thr][fiv]);
	}
	return 0;
}

Submission Info

Submission Time
Task D - サイコロ
User base64go
Language C++ (G++ 4.6.4)
Score 4
Code Size 1549 Byte
Status AC
Exec Time 58 ms
Memory 17052 KiB

Judge Result

Set Name All
Score / Max Score 4 / 4
Status
AC × 13
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 31 ms 928 KiB
01 AC 38 ms 5408 KiB
02 AC 28 ms 3108 KiB
03 AC 28 ms 2592 KiB
04 AC 30 ms 3612 KiB
05 AC 44 ms 8352 KiB
06 AC 56 ms 17052 KiB
07 AC 58 ms 16804 KiB
08 AC 30 ms 4384 KiB
09 AC 43 ms 12576 KiB
10 AC 24 ms 672 KiB
90 AC 23 ms 924 KiB
91 AC 24 ms 800 KiB