結果
| 問題 |
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)