結果
問題 |
No.1953 8
|
ユーザー |
👑 |
提出日時 | 2022-05-20 22:37:35 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 53 ms / 2,000 ms |
コード長 | 651 bytes |
コンパイル時間 | 859 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 60,416 KB |
最終ジャッジ日時 | 2024-09-20 08:54:57 |
合計ジャッジ時間 | 5,773 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 |
ソースコード
circle = [1, 0, 0, 0, 1, 0, 1, 0, 2, 1] def f(S): S = str(S) ret = 0 eq = 0 cnt = 0 s = int(S[0]) for i in range(1, s): ret += circle[i] cnt += 1 eq = circle[s] for s in S[1:]: s = int(s) ret *= 10 ret += cnt * 6 cnt *= 10 ret += 5 cnt += 9 for i in range(s): cnt += 1 ret += eq + circle[i] eq += circle[s] return ret + eq k = int(input()) l = 0 r = 10 ** 18 while r - l > 1: mid = (l + r) // 2 if f(mid) >= k: r = mid else: l = mid if f(r) == k: print(r) else: print(-1)