Submission #3248158


Source Code Expand

using System;
class Program
{
	static void Main()
	{
  string[] input = Console.ReadLine().Split(' ');//Splitで区切り文字を指定して複数個受け取る。
	int n = int.Parse(input[0]);
	long d = int.Parse(input[1]);
  long divideA = 0;//2の約数
  long divideB = 0;//3
  long divideC = 0;//5
    while(d % 2 ==0)
    {
      d/= 2;
      divideA++;
    }
    while(d % 3 ==0)
    {
      d/= 3;
      divideB++;
    }
    while(d % 5 ==0)
    {
      d/= 5;
      divideC++;
    }
    float[,,,] answers = new float[n+11,divideA+11,divideB+11,divideC+11];
    answers[0,0,0,0] = 1;

    for(int i = 0; i < n; i++)
    {
      for(long a = 0; a <= divideA; a++)
      {
        for(long b = 0; b <= divideB; b++)
        {
          for(long c = 0; c <= divideC ; c++)
          {
          
            answers[i+1,a,b,c] += answers[i,a,b,c] / 6;  
            answers[i+1,Math.Min(a+1, divideA),b,c] += answers[i,a,b,c] / 6; 
            answers[i+1,a,Math.Min(b+1, divideB),c] += answers[i,a,b,c] / 6; 
            answers[i+1,Math.Min(a+2, divideA),b,c] += answers[i,a,b,c] / 6; 
            answers[i+1,a,b,Math.Min(c+1, divideC)] += answers[i,a,b,c] / 6; 
            answers[i+1,Math.Min(a+1, divideA),Math.Min(b+1, divideB),c] += answers[i,a,b,c] / 6; 
          }
        }
      }
    }
  if(d == 1) Console.WriteLine(answers[n,divideA,divideB,divideC]);
  else Console.WriteLine(0);
  
	}
}

Submission Info

Submission Time
Task D - サイコロ
User suikameron
Language C# (Mono 4.6.2.0)
Score 0
Code Size 1466 Byte
Status RE
Exec Time 22 ms
Memory 13180 KB

Judge Result

Set Name All
Score / Max Score 0 / 4
Status
AC × 2
RE × 11
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 RE 19 ms 8544 KB
01 RE 20 ms 12640 KB
02 RE 20 ms 8544 KB
03 RE 19 ms 10720 KB
04 RE 19 ms 10592 KB
05 RE 19 ms 10592 KB
06 RE 21 ms 12640 KB
07 RE 19 ms 8672 KB
08 RE 19 ms 10592 KB
09 RE 20 ms 10592 KB
10 RE 20 ms 10592 KB
90 AC 22 ms 11128 KB
91 AC 22 ms 13180 KB