結果

問題 No.3245 Payment with 8-rep Currency
ユーザー hitonanode
提出日時 2025-08-22 22:35:19
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
TLE  
実行時間 -
コード長 818 bytes
コンパイル時間 518 ms
コンパイル使用メモリ 12,288 KB
実行使用メモリ 73,304 KB
最終ジャッジ日時 2025-08-22 22:35:27
合計ジャッジ時間 7,599 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample TLE * 1
other -- * 30
権限があれば一括ダウンロードができます

ソースコード

diff #

from scipy.optimize import linprog

T = int(input())
rets = []

A_ub = [
    [1, -1, -1, -1],
    [-1, 1, -1, -1],
    [-1, -1, 1, -1],
    [-1, -1, -1, 1],
]
b_ub = [-1, -1, -1, -1]

for _ in range(T):

    n = int(input())

    if n % 8:
        rets.append([-1])
    else:
        n //= 8

        base = [0] * 4
        u = 0
        if n > 1 << 40:
            u = (n - (1 << 30)) // (1 + 11 + 111 + 1111)
            n -= u * (1 + 11 + 111 + 1111)

        sol = linprog(
            c=[0]*4,
            A_ub=A_ub,
            b_ub=b_ub,
            A_eq=[[1, 11, 111, 1111]],
            b_eq=[n],
            integrality=1,
        )
        if sol.success:
            res = [round(x) + u for x in sol.x]
            rets.append(res)
        else:
            rets.append([-1])

for r in rets:
    print(*r)
0