結果
問題 | No.1185 完全な3の倍数 |
ユーザー |
|
提出日時 | 2020-08-22 15:06:27 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 503 ms / 2,000 ms |
コード長 | 785 bytes |
コンパイル時間 | 95 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 54,144 KB |
最終ジャッジ日時 | 2024-11-24 09:32:49 |
合計ジャッジ時間 | 10,130 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 39 |
ソースコード
from collections import deque n = int(input()) # まず3の倍数なら桁話は3の倍数 # # 1212ダメ # 3の倍数でないものが現れるのは2桁の時のみ? # 1515 - 11でダメ # 3桁以上だと3の倍数以外が桁に現れると条件を満たさない? # 3の倍数のうち、3の倍数のみが桁に現れるものの数 # -> 桁DPでもいいけど全部列挙できる # 2桁は全部見つける、1桁は最後に除外 two = [12, 15, 18, 21, 24, 27, 42, 45, 48, 51, 54, 57, 72, 75, 78, 81, 84, 87] ans = 0 q = deque() q.append(3) q.append(6) q.append(9) while len(q) > 0: x = q.popleft() if x > n: continue ans += 1 for y in [0, 3, 6, 9]: q.append(x * 10 + y) for t in two: if t <= n: ans += 1 print(ans - 3)