結果
| 問題 |
No.1988 Divisor Tiling
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-06-26 13:16:27 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 69 ms / 2,000 ms |
| コード長 | 545 bytes |
| コンパイル時間 | 334 ms |
| コンパイル使用メモリ | 81,664 KB |
| 実行使用メモリ | 74,368 KB |
| 最終ジャッジ日時 | 2024-11-16 18:09:24 |
| 合計ジャッジ時間 | 4,019 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 32 |
ソースコード
n, h = map(int, input().split())
P = {6: 3, 28: 7, 496: 31, 8128: 127}
p = P[n]
w = n // h
R = [1]
f = 2
while f * f <= n:
if n % f == 0:
R.append(f)
if n // f != f:
R.append(n // f)
f += 1
R.sort()
ANS = [[0 for _ in range(w)] for _ in range(h)]
i = 0
if (n // p) % h == 0:
for x in R:
for j in range(x):
ANS[i // w][i % w] = x
i += 1
else:
for x in R:
for j in range(x):
ANS[i % h][i // h] = x
i += 1
for ans in ANS:
print(*ans)