結果
問題 | No.1398 調和の魔法陣 (構築) |
ユーザー |
![]() |
提出日時 | 2021-02-19 21:43:32 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 394 ms / 3,153 ms |
コード長 | 1,146 bytes |
コンパイル時間 | 136 ms |
コンパイル使用メモリ | 12,928 KB |
実行使用メモリ | 13,568 KB |
最終ジャッジ日時 | 2024-09-16 18:07:34 |
合計ジャッジ時間 | 32,315 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 28 |
ソースコード
import sys input = sys.stdin.readline W,H,X=map(int,input().split()) ANS=[[-1]*W for i in range(H)] if W<=2 and H<=2: for i in range(H): for j in range(W): M=min(X,9) ANS[i][j]=M X-=M if X>0: print(-1) else: for ans in ANS: print("".join(map(str,ans))) exit() for i in range(2,H,3): for j in range(W): ANS[i][j]=0 for i in range(H): for j in range(2,W,3): ANS[i][j]=0 for i in range(H-3,-1,-3): for j in range(W): ANS[i][j]=0 for i in range(H): for j in range(W-3,-1,-3): ANS[i][j]=0 c=0 for i in range(min(H,3)): for j in range(min(W,3)): if ANS[i][j]==-1: c+=1 if 1<=X<=c*9: for i in range(0,H,3): for j in range(0,W,3): T=X for k in range(i,i+3): for l in range(j,j+3): if 0<=k<H and 0<=l<W and ANS[k][l]==-1: M=min(T,9) ANS[k][l]=M T-=M for ans in ANS: print("".join(map(str,ans))) else: print(-1)