結果
| 問題 | No.491 10^9+1と回文 | 
| コンテスト | |
| ユーザー |  char134217728 | 
| 提出日時 | 2017-09-15 17:46:16 | 
| 言語 | Ruby (3.4.1) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 91 ms / 1,000 ms | 
| コード長 | 480 bytes | 
| コンパイル時間 | 347 ms | 
| コンパイル使用メモリ | 7,424 KB | 
| 実行使用メモリ | 12,288 KB | 
| 最終ジャッジ日時 | 2024-11-07 22:52:22 | 
| 合計ジャッジ時間 | 12,108 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 103 | 
コンパイルメッセージ
Syntax OK
ソースコード
n = gets.to_i
m = 10**9
a = n / m
b = n % m
a -= 1 if a > b
a = a.to_s.chars.map &:to_i
def f(a, z)
  l = a.length
  return 1 if l == 0
  ret = 0
  d = a[0]
  d -= 1 unless z
  if a[0] > a[-1]
    b = a[1..-2].join.to_i
    if b > 0
      ret += f((b-1).to_s.rjust(l-2, ?0).chars.map(&:to_i), true)
    end
  else
    ret += f(a[1..-2], true)
  end
  ret += d * f([9]*[(l-2),0].max, true)
  ret
end
ans = 0
ans += f(a, false)
(1..a.length-1).each{|i| ans += f([9]*i, false)}
p ans
            
            
            
        