Submission #5913213


Source Code Expand

n, d = gets.split.map(&:to_i)

dp = Array.new(d+1, 0)
(1..6).each do |i|
  if i < d
    dp[i] = 1
  elsif i % d == 0
    dp[d] += 1
  else
    dp[i%d] += 1
  end
end

(n-1).times do
  idxs = dp.each_index.select{|i| !dp[i].zero? }
  h = Hash.new
  (1..6).each{|i|
    idxs.each{|idx|
      nv = i * idx
      if nv < d
        h[nv] = (h[nv] || 0) + dp[idx]
      elsif nv == d || nv%d == 0
        h[d] = (h[d] || 0) + dp[idx]
      else
        h[nv%d] = (h[nv%d] || 0) + dp[idx]
      end
    }
  }
  h.each_key {|k|
    dp[k] = h[k]
  }
end

puts sprintf("%.9f", dp[d].to_f / 6**n)

Submission Info

Submission Time
Task D - サイコロ
User somurie06
Language Ruby (2.3.3)
Score 0
Code Size 620 Byte
Status RE
Exec Time 7 ms
Memory 1788 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 7 ms 1788 KB
01 RE 7 ms 1788 KB
02 RE 7 ms 1788 KB
03 RE 7 ms 1788 KB
04 RE 7 ms 1788 KB
05 RE 7 ms 1788 KB
06 RE 7 ms 1788 KB
07 RE 7 ms 1788 KB
08 RE 7 ms 1788 KB
09 RE 7 ms 1788 KB
10 RE 7 ms 1788 KB
90 AC 7 ms 1788 KB
91 AC 7 ms 1788 KB