結果
| 問題 |
No.217 魔方陣を作ろう
|
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2022-07-05 05:06:52 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,116 bytes |
| コンパイル時間 | 342 ms |
| コンパイル使用メモリ | 12,928 KB |
| 実行使用メモリ | 11,136 KB |
| 最終ジャッジ日時 | 2024-12-15 04:25:55 |
| 合計ジャッジ時間 | 1,862 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 14 WA * 4 |
ソースコード
N=int(input())
ANS=[[0]*N for i in range(N)]
if N%2==1:
i=N//2
j=0
now=1
for t in range(N):
for u in range(N):
ANS[j][i]=now
now+=1
j-=1
i+=1
j%=N
i%=N
j+=2
i-=1
j%=N
i%=N
elif N%4==0:
for i in range(N):
for j in range(N):
if i%4==0 or i%4==3:
if j%4==0 or j%4==3:
ANS[i][j]=i*N+j+1
else:
ANS[i][j]=N*N-(i*N+j)
else:
if j%4==0 or j%4==3:
ANS[i][j]=N*N-(i*N+j)
else:
ANS[i][j]=i*N+j+1
else:
K=N//2
ANS2=[[0]*K for i in range(K)]
i=K//2
j=0
now=1
for t in range(K):
for u in range(K):
ANS2[j][i]=now
now+=1
j-=1
i+=1
j%=K
i%=K
j+=2
i-=1
j%=K
i%=K
for i in range(K):
for j in range(K):
ANS2[i][j]=(ANS2[i][j]-1)*4
for i in range(K):
for j in range(K):
if i==K//2 and j==K//2:
ANS[i*2][j*2]=ANS2[i][j]+1
ANS[i*2+1][j*2]=ANS2[i][j]+2
ANS[i*2][j*2+1]=ANS2[i][j]+3
ANS[i*2+1][j*2+1]=ANS2[i][j]+4
elif i<=K//2 or (i==K//2+1 and j==K//2):
ANS[i*2][j*2]=ANS2[i][j]+4
ANS[i*2+1][j*2]=ANS2[i][j]+2
ANS[i*2][j*2+1]=ANS2[i][j]+1
ANS[i*2+1][j*2+1]=ANS2[i][j]+3
elif i==K//2+1:
ANS[i*2][j*2]=ANS2[i][j]+1
ANS[i*2+1][j*2]=ANS2[i][j]+2
ANS[i*2][j*2+1]=ANS2[i][j]+3
ANS[i*2+1][j*2+1]=ANS2[i][j]+4
else:
ANS[i*2][j*2]=ANS2[i][j]+1
ANS[i*2+1][j*2]=ANS2[i][j]+3
ANS[i*2][j*2+1]=ANS2[i][j]+4
ANS[i*2+1][j*2+1]=ANS2[i][j]+2
for i in range(N):
print(*ANS[i])
titia