結果
問題 | No.491 10^9+1と回文 |
ユーザー |
![]() |
提出日時 | 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