結果

問題 No.3264 岩井数
ユーザー yas_yasyu
提出日時 2025-09-06 15:23:56
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 1,473 bytes
コンパイル時間 374 ms
コンパイル使用メモリ 82,172 KB
実行使用メモリ 84,624 KB
最終ジャッジ日時 2025-09-06 15:24:13
合計ジャッジ時間 5,930 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample -- * 2
other AC * 7 TLE * 1 -- * 22
権限があれば一括ダウンロードができます

ソースコード

diff #

N = int(input())


def is_yiwiy9_number(num: str):
    if num[-1] != "9":
        return False

    for i in range((len(num) - 1) // 2):
        if num[i] != num[len(num) - i - 1 - 1]:
            return False
    return True


def near_yiwiy9_number(num: str):
    num = num[:-1]
    is_even = len(num) % 2 == 0

    half = num[: len(num) // 2]

    if is_even:
        return "".join([half, half[::-1], "9"])
    else:
        mid = num[len(num) // 2]
        return "".join([half, mid, half[::-1], "9"])


def nxt_yiwiy9_number(num: str):
    num = num[:-1]
    is_even = len(num) % 2 == 0

    half = num[: len(num) // 2]

    if is_even:
        if all(map(lambda d: d == "9", half)):
            is_even = False
            mid = "0"
            half = str(10 ** (len(half) - 1))
        else:
            half = str(int(half) + 1)

    else:
        mid = num[len(num) // 2]
        if mid == "9":
            if all(map(lambda d: d == "9", half)):
                is_even = True
                half = str(10 ** (len(half)))
            else:
                mid = "0"
                half = str(int(half) + 1)
        else:
            mid = str(int(mid) + 1)

    if is_even:
        return "".join([half, half[::-1], "9"])
    else:
        return "".join([half, mid, half[::-1], "9"])


yiwiy9_number = near_yiwiy9_number(str(10**9))
while True:
    if int(yiwiy9_number := nxt_yiwiy9_number(yiwiy9_number)) % N == 0:
        print(yiwiy9_number)
        break
0