結果
| 問題 | No.3567 Modulo Grid |
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2026-06-14 02:39:07 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,388 bytes |
| 記録 | |
| コンパイル時間 | 336 ms |
| コンパイル使用メモリ | 85,248 KB |
| 実行使用メモリ | 113,536 KB |
| 最終ジャッジ日時 | 2026-06-14 02:39:14 |
| 合計ジャッジ時間 | 5,791 ms |
|
ジャッジサーバーID (参考情報) |
judge2_1 / judge3_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 19 WA * 6 |
ソースコード
import sys
input = sys.stdin.readline
H,W=list(map(int,input().split()))
flag=0
if H<W:
flag=1
H,W=W,H
a=H*W
P=[]
for i in range(2,H*W+1):
if a%i==0:
P.append(i)
while a%i==0:
a//=i
A=list(range(1,H*W+1))
LIST=[]
for i in range(len(P)):
if i+1<len(P):
x=P[i]
y=P[i+1]
LIST1=[]
LIST2=[]
B=[]
for a in A:
if a%(x*y)==0:
LIST2.append(a)
elif a%x==0:
LIST1.append(a)
else:
B.append(a)
A=B
LIST.append(LIST1)
LIST.append(LIST2)
else:
x=P[i]
LIST1=[]
B=[]
for a in A:
if a%x==0:
LIST1.append(a)
else:
B.append(a)
LIST.append(LIST1)
A=B
ANS=[[0]*W for i in range(H)]
height=0
for L in LIST:
w=0
for x in L:
if ANS[height][w]!=0:
height+=1
ANS[height][w]=x
w+=1
if w==W:
w=0
ind=0
for i in range(H):
for j in range(W):
if ANS[i][j]==0:
ANS[i][j]=A[ind]
ind+=1
if flag:
ANS2=[[0]*H for i in range(W)]
for i in range(W):
for j in range(H):
ANS2[i][j]=ANS[j][i]
ANS=ANS2
for ans in ANS:
print(*ans)
titia