結果
問題 | No.2246 1333-like Number |
ユーザー |
|
提出日時 | 2023-04-04 19:36:45 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 208 ms / 2,000 ms |
コード長 | 1,397 bytes |
コンパイル時間 | 268 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 12,544 KB |
最終ジャッジ日時 | 2024-10-01 10:25:21 |
合計ジャッジ時間 | 3,525 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 |
ソースコード
import sysimport mathN = int(input())c, remainder = divmod(N, 36)# 36の倍数 → 商をひとつ下げる。if remainder == 0:c -= 1# NOTE: dict ではなく list にしたほうがカッコイイけど、# 余りの値: a, b という対応にしたほうが分かりやすいと思ったので。a, b = {1: (1, 2),2: (1, 3),3: (1, 4),4: (1, 5),5: (1, 6),6: (1, 7),7: (1, 8),8: (1, 9),9: (2, 3),10: (2, 4),11: (2, 5),12: (2, 6),13: (2, 7),14: (2, 8),15: (2, 9),16: (3, 4),17: (3, 5),18: (3, 6),19: (3, 7),20: (3, 8),21: (3, 9),22: (4, 5),23: (4, 6),24: (4, 7),25: (4, 8),26: (4, 9),27: (5, 6),28: (5, 7),29: (5, 8),30: (5, 9),31: (6, 7),32: (6, 8),33: (6, 9),34: (7, 8),35: (7, 9),0: (8, 9),}[remainder]def calculate_answer(a: int, b: int, c: int) -> int:"""'うしっぽい数' とやらを作成する。"""x = 10 * a + bfor _ in range(c):x = 10 * x + breturn xanswer = calculate_answer(a, b, c)# 最近の Python は、4300桁以降を str 変換できない。# 桁数を求めて……digits = math.ceil(math.log10(answer + 1))if digits >= 4300:# ……制限を変更する。sys.set_int_max_str_digits(digits)print(answer)