結果
問題 | No.58 イカサマなサイコロ |
ユーザー |
|
提出日時 | 2023-09-02 20:30:30 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 101 ms / 5,000 ms |
コード長 | 1,021 bytes |
コンパイル時間 | 259 ms |
コンパイル使用メモリ | 7,296 KB |
実行使用メモリ | 12,416 KB |
最終ジャッジ日時 | 2024-06-12 02:51:40 |
合計ジャッジ時間 | 1,780 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 10 |
コンパイルメッセージ
Syntax OK
ソースコード
#!/usr/local/bin/rubyclass FakeDicedef initialize(*arg)@n,@k = arg@jirodice = normal_dice_pb(@n)@tarodice = fake_dice_pb(@k,normal_dice_pb(@n-@k))endprivatedef normal_dice_pb(n)dp = Hash.new(0)dp[0]=1n.times donewdp = Hash.new(0)dp.each do |dsum,pb|(1..6).each do |i|newdp[dsum+i] += pb/6.to_rendenddp = newdpenddpenddef fake_dice_pb(k,dp)k.times donewdp = Hash.new(0)dp.each do |dsum,pb|(4..6).each do |i|newdp[dsum+i] += pb/3.to_rendenddp = newdpenddpendpublicdef anscumsum = Array.new(@n*6+2,0)d = @n*6while d >= @n+1cumsum[d] = cumsum[d+1] + @tarodice[d]d-=1endr = 0d =@nwhile d < @n*6r += @jirodice[d]*cumsum[d+1]d+=1endr.to_fendend### END: class FakeDiceiod = STDINn = iod.gets.to_ik = iod.gets.to_iputs FakeDice.new(n,k).ansexit 0