結果
| 問題 | No.1398 調和の魔法陣 (構築) | 
| コンテスト | |
| ユーザー |  titia | 
| 提出日時 | 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)
            
            
            
        