結果

問題 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

ソースコード

diff #

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
0