結果

問題 No.1185 完全な3の倍数
ユーザー siman
提出日時 2020-08-23 03:34:11
言語 Ruby
(3.4.1)
結果
AC  
実行時間 1,065 ms / 2,000 ms
コード長 592 bytes
コンパイル時間 228 ms
コンパイル使用メモリ 7,680 KB
実行使用メモリ 22,400 KB
最終ジャッジ日時 2024-11-24 09:47:49
合計ジャッジ時間 12,280 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 39
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

N = gets.to_i
D = N.to_s.size

def f(n)
  return false if n <= 0
  return false if n % 3 != 0

  digits = n.digits

  return false if digits.size <= 1

  digits.combination(2).all? { |a, b| (a + b) % 3 == 0 }
end

ans = 0

(1..[N, 99].min).each do |n|
  ans += 1 if f(n)
end

$cnt = 0
$checked = Hash.new(false)

def dfs(sum, base, depth)
  return if D < depth

  if depth >= 3 && 100 <= sum && sum <= N && !$checked[sum]
    $checked[sum] = true
    $cnt += 1
  end

  [0, 3, 6, 9].each do |n|
    s = sum + base * n

    dfs(s, base * 10, depth + 1)
  end
end

dfs(0, 1, 0)
puts $cnt + ans
0