結果
問題 |
No.108 トリプルカードコンプ
|
ユーザー |
|
提出日時 | 2023-09-01 16:44:53 |
言語 | Ruby (3.4.1) |
結果 |
TLE
|
実行時間 | - |
コード長 | 744 bytes |
コンパイル時間 | 222 ms |
コンパイル使用メモリ | 8,192 KB |
実行使用メモリ | 53,400 KB |
最終ジャッジ日時 | 2025-01-03 06:41:45 |
合計ジャッジ時間 | 51,764 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 10 WA * 3 TLE * 7 |
コンパイルメッセージ
Syntax OK
ソースコード
#!/usr/local/bin/ruby class TripleCardComp def initialize(*arg) @n,@a = arg @n = @n.to_r @dp = Array.new(@n+1){Array.new(@n+1){Array.new(@n+1)}} @dp[0][0][0] = 0 end private def dynamic(x,y,z) if x < 0 || y < 0 || z<0 0 else unless @dp[x][y][z] @dp[x][y][z] = (dynamic(x-1,y+1,z)*x + dynamic(x,y-1,z+1)*y + dynamic(x,y,z-1)*z + @n)/(x+y+z).to_r end @dp[x][y][z] end end public def ans g = (0...@n).group_by{|i| @a[i]} x = g[0] || [] y = g[1] || [] z = g[2] || [] dynamic(x.size,y.size,z.size) end end ### END: class TripleCardComp iod = STDIN n, = iod.gets.split.map &:to_i a = iod.gets.split.map &:to_i puts TripleCardComp.new(n,a).ans exit 0