結果
| 問題 | No.189 SUPER HAPPY DAY | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2015-04-22 02:00:10 | 
| 言語 | Ruby (3.4.1) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 1,795 ms / 5,000 ms | 
| コード長 | 835 bytes | 
| コンパイル時間 | 188 ms | 
| コンパイル使用メモリ | 7,424 KB | 
| 実行使用メモリ | 13,824 KB | 
| 最終ジャッジ日時 | 2024-07-04 23:48:23 | 
| 合計ジャッジ時間 | 11,850 ms | 
| ジャッジサーバーID (参考情報) | judge2 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 23 | 
コンパイルメッセージ
Syntax OK
ソースコード
M, D = gets.split
def get_dp(s)
    dp = []
    # dp[0] = 1
    size = 0
    #puts "---------------"
    s.each_char{|ch|
        dp2 = []
        num = ch.ord - '0'.ord
        #puts "num=#{num}"
        (0..9).each{|i|
            (dp.size).downto(0).each{|j|
                dp2[j+i] = dp2[j+i].to_i + dp[j].to_i
                #puts "i=#{i}, j=#{j} dp2[#{j+i}]=#{dp2[j+i]}"
            }
        }
        (0..num-1).each{|j|
            dp2[j+size] = dp2[j+size].to_i + 1
            #puts "j=#{j} size=#{size} dp2[j+size]=#{dp2[j+size]}"
        }
        dp = dp2
        size += num
    }
    dp[size] += 1
    return dp
end
dp1 = get_dp(M)
dp2 = get_dp(D)
total = 0
(1..dp1.size).each{|i|
    cnt = dp1[i].to_i * dp2[i].to_i
    total += cnt
    #puts "i=#{i}, db1[i]=#{dp1[i]}, dp2[i]=#{dp2[i]}"
}
puts total % 1000000009
            
            
            
        