結果

問題 No.3316 Make 81181819 with only 0,1,or 8
コンテスト
ユーザー ルク
提出日時 2025-10-31 21:46:59
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 1,230 bytes
コンパイル時間 321 ms
コンパイル使用メモリ 82,480 KB
実行使用メモリ 64,056 KB
最終ジャッジ日時 2025-10-31 21:47:04
合計ジャッジ時間 4,783 ms
ジャッジサーバーID
(参考情報)
judge3 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 1 WA * 21
権限があれば一括ダウンロードができます

ソースコード

diff #

t = int(input())
yiwiyNumber = 81181819
canMake = []
nums = [0, 1, 8]
for i in range(1, pow(3, 8)):
    k = i
    sm = 0
    for j in range(8):
        sm *= 10
        sm += nums[k % 3]
        k //= 3
    canMake.append(sm)
canMake = list(set(canMake))
canMake.sort(reverse=True)
for _ in range(t):
    n = int(input())
    n = yiwiyNumber-n
    dist = [[] for _ in range(8)]
    k = n
    cnt = 0
    for i in range(8):
        if k % 10 == 8:
            dist[i].append(8)
            cnt += 1
        elif k % 10 == 9:
            dist[i].append(8)
            dist[i].append(1)
            cnt += 2
        else:
            for j in range(k % 10):
                dist[i].append(1)
            cnt += k % 10
        k //= 10
    合成ねこ = []
    while cnt != 0:
        ねこ = 0
        for j in range(7, -1, -1):
            ねこ *= 10
            if len(dist[j]):
                ねこ += dist[j].pop()
                cnt -= 1
        合成ねこ.append(ねこ)
    print(len(合成ねこ))
    for ねこ in 合成ねこ:
        print(ねこ)
"""
14
10+4
10+1+1+1+1
まとめる
11+1+1+1

21
10+10+1
まとめる
10+11

181
100+10+10+...+10+1
まとめる
100+80+1
181

81181819
まとめる
81181818+1
"""
0