結果

問題 No.1988 Divisor Tiling
ユーザー H20
提出日時 2022-06-24 23:11:21
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 977 bytes
コンパイル時間 217 ms
コンパイル使用メモリ 82,432 KB
実行使用メモリ 69,376 KB
最終ジャッジ日時 2024-11-08 18:51:03
合計ジャッジ時間 5,822 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 16 WA * 16
権限があれば一括ダウンロードができます

ソースコード

diff #

def make_divisors(n):
    lower_divisors , upper_divisors = [], []
    i = 1
    while i*i <= n:
        if n % i == 0:
            lower_divisors.append(i)
            if i != n // i and i!=1:
                upper_divisors.append(n//i)
        i += 1
    return lower_divisors + upper_divisors[::-1]

N,H = map(int, input().split())
D = make_divisors(N)
L = []
for d in D:
    L.extend([d]*d)
if H==1:
    print(*L)
    exit()
if H==N:
    for l in L:
        print(l)
    exit()
if H==2:
    print(*L[:N//2])
    print(*L[N//2:])
    exit()
if N/H==2.0:
    for i in range(N//2):
        print(L[i],L[N-1-i])
    exit()
if N==28 and H==4:
    print('1 2 2 4 4 4 4')
    print('7 7 7 7 7 7 7')
    print('14 14 14 14 14 14 14')
    print('14 14 14 14 14 14 14')
    exit()

if N==28 and H==7:
    print('1 7 14 14')
    print('2 7 14 14')
    print('2 7 14 14')
    print('4 7 14 14')
    print('4 7 14 14')
    print('4 7 14 14')
    print('4 7 14 14')
    exit()

print(-1)
0