結果

問題 No.3548 SigMax Digits (Construction ver.)
コンテスト
ユーザー 👑 loop0919
提出日時 2026-04-13 01:25:34
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
TLE  
実行時間 -
コード長 876 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 201 ms
コンパイル使用メモリ 85,120 KB
実行使用メモリ 81,664 KB
最終ジャッジ日時 2026-05-22 21:46:27
合計ジャッジ時間 4,223 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other TLE * 1 -- * 6
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

from random import randint


def answer(n: int):
    ans = 9 * n

    for d in range(1, 9):
        str_n = [ni for ni in str(n)]
        is_upper = False
        for i in range(len(str_n)):
            if d < int(str_n[i]) or is_upper:
                str_n[i] = str(d)
                is_upper = True

        v = int("".join(str_n), base=d + 1)
        ans -= v

    return ans


def solve():
    N = int(input())

    while True:
        L = randint(1, min(10**9, N))
        ans_L = answer(L - 1)

        ok, ng = L, 10**18 + 1
        while (ng - ok) > 1:
            mid = (ok + ng) // 2
            if answer(mid) - ans_L <= N:
                ok = mid
            else:
                ng = mid

        if answer(ok) - ans_L == N:
            print(L, ok)
            return


if __name__ == "__main__":
    T = int(input())

    for _ in range(T):
        solve()
0