結果
問題 |
No.1849 Three Times Value
|
ユーザー |
![]() |
提出日時 | 2025-03-20 18:49:59 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 39 ms / 2,000 ms |
コード長 | 697 bytes |
コンパイル時間 | 169 ms |
コンパイル使用メモリ | 82,708 KB |
実行使用メモリ | 53,816 KB |
最終ジャッジ日時 | 2025-03-20 18:52:25 |
合計ジャッジ時間 | 2,309 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 26 |
ソースコード
N_str = input().strip() L = len(N_str) k_max = L // 3 answer = 0 for k in range(1, k_max + 1): if 3 * k < L: count = 9 * (10 ** (k - 1)) answer += count else: min_m = 10 ** (k - 1) max_m = 10 ** k - 1 if min_m > max_m: continue low = min_m high = max_m best = 0 while low <= high: mid = (low + high) // 2 mid_str = str(mid) candidate = mid_str * 3 if candidate <= N_str: best = mid low = mid + 1 else: high = mid - 1 if best >= min_m: answer += best - min_m + 1 print(answer)