結果
問題 | No.217 魔方陣を作ろう |
ユーザー |
![]() |
提出日時 | 2015-05-27 01:54:08 |
言語 | Python2 (2.7.18) |
結果 |
AC
|
実行時間 | 9 ms / 5,000 ms |
コード長 | 2,471 bytes |
コンパイル時間 | 81 ms |
コンパイル使用メモリ | 7,168 KB |
実行使用メモリ | 6,272 KB |
最終ジャッジ日時 | 2024-07-06 10:33:29 |
合計ジャッジ時間 | 1,096 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 18 |
ソースコード
N=int(raw_input())sq=[[0 for i in range(N)] for j in range(N)]if N%2==1:x=0y=N/2cur=1while cur <= N*N:if sq[x][y]==0:sq[x][y]=curcur+=1else:x+=2y-=1if y<0:y=N-1if x>=N:x-=Nsq[x][y]=curcur+=1x-=1y+=1if x<0:x=N-1if y>=N:y=0elif N%4==0:cur=1for x in range(N):for y in range(N):a,b=x%4,y%4if a==b or a+b==3:sq[x][y]=curcur+=1cur=1for x in range(N-1,-1,-1):for y in range(N-1,-1,-1):if sq[x][y]==0:sq[x][y]=curcur+=1else:sq2=[[0 for i in range(N/2)] for j in range(N/2)]n=N/2x=0y=n/2cur=1while cur <= n*n:if sq2[x][y]==0:sq2[x][y]=curcur+=1else:x+=2y-=1if y<0:y=n-1if x>=n:x-=nsq2[x][y]=curcur+=1x-=1y+=1if x<0:x=n-1if y>=n:y=0for i in range(n):for j in range(n):sq2[i][j]=4*(sq2[i][j]-1)for x in range(n):for y in range(n):if x == n/2 and y==n/2:sq[2*x][2*y]=sq2[x][y]+1sq[2*x+1][2*y]=sq2[x][y]+2sq[2*x][2*y+1]=sq2[x][y]+4sq[2*x+1][2*y+1]=sq2[x][y]+3elif x== n/2+1 and y==n/2:sq[2*x][2*y]=sq2[x][y]+4sq[2*x+1][2*y]=sq2[x][y]+2sq[2*x][2*y+1]=sq2[x][y]+1sq[2*x+1][2*y+1]=sq2[x][y]+3elif x<=n/2:sq[2*x][2*y]=sq2[x][y]+4sq[2*x+1][2*y]=sq2[x][y]+2sq[2*x][2*y+1]=sq2[x][y]+1sq[2*x+1][2*y+1]=sq2[x][y]+3elif x==n/2+1:sq[2*x][2*y]=sq2[x][y]+1sq[2*x+1][2*y]=sq2[x][y]+2sq[2*x][2*y+1]=sq2[x][y]+4sq[2*x+1][2*y+1]=sq2[x][y]+3else:sq[2*x][2*y]=sq2[x][y]+1sq[2*x+1][2*y]=sq2[x][y]+3sq[2*x][2*y+1]=sq2[x][y]+4sq[2*x+1][2*y+1]=sq2[x][y]+2for i in range(N):for j in range(N):print sq[i][j],