結果

問題 No.1964 sum = length
ユーザー magurofly
提出日時 2022-06-04 13:29:16
言語 Ruby
(3.4.1)
結果
AC  
実行時間 1,820 ms / 2,000 ms
コード長 447 bytes
コンパイル時間 221 ms
コンパイル使用メモリ 7,424 KB
実行使用メモリ 12,544 KB
最終ジャッジ日時 2024-09-21 03:41:19
合計ジャッジ時間 24,671 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 40
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

MOD = 998244353
n = gets.to_i

d = ->(n) {
    case n
    when 1 .. 9
        1
    when 10 .. 99
        2
    when 100 .. 999
        3
    when 1000 .. 9999
        4
    end
}

dp = [0] * n
dp[0] = 1
n.times do
    dp2 = [0] * n
    (0 ... n).each do |i|
        (1 .. 999).each do |a|
            x = a - d[a]
            break if i < x
            dp2[i] += dp[i - x]
        end
    end
    dp = dp2.map { |x| x % MOD }
end


puts dp[n - 1]
0