問題一覧 > 通常問題

No.3765 321-avoiding Grid

レベル : / 実行時間制限 : 1ケース 1.000秒 / メモリ制限 : 1024 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : (AC するまで非表示) / 解いたユーザー数 36
作問者 : apricity / テスター : 👑 AngrySadEight
お気に入りにしたユーザー ProblemId : 13639 / 自分の提出
問題文最終更新日: 2026-10-15 05:51:25
yukicoder contest 518 (順位表) の他の問題:

問題文

$2$ 以上の整数 $N$ と $A+B+C = N^2$ を満たす正整数 $A,B,C$ が与えられます.

$N$ 行 $N$ 列のマス目の各マスに $1,2,3$ のいずれかの数字を書き込む方法であって,以下の条件をすべて満たすものの一例を示してください.

  • $1$ が書かれたマスはちょうど $A$ 個存在する.
  • $2$ が書かれたマスはちょうど $B$ 個存在する.
  • $3$ が書かれたマスはちょうど $C$ 個存在する.
  • 上下左右に隣接するマスに移動することを考える.あるマスから始めて移動を $2$ 回繰り返す方法であって,通ったマスに書かれた数字が順に $3,2,1$ になるものが存在 しない .

なお,条件を満たす書き込み方が $1$ つ以上存在することが証明できます.

入力

$N\ A\ B\ C$
  • 入力は全て整数.
  • $2 \leq N \leq 500$
  • $1 \leq A,B,C$
  • $A+B+C = N^2$

出力

上から $i$ 行目,左から $j$ 列目のマスに書き込む数字を $S_{i,j}$ とします. $S$ を以下の形式に従って出力してください.

$S_{1,1}S_{1,2}\dots S_{1,N}$
$S_{2,1}S_{2,2}\dots S_{2,N}$
$\vdots$
$S_{N,1}S_{N,2}\dots S_{N,N}$

条件を満たす $S$ が複数存在する場合,どれを出力しても正解とみなされます.

サンプル

サンプル1
入力
2 2 1 1
出力
12
31

上から $i$ 行目,左から $j$ 列目のマスを $(i,j)$ と表します.以下に移動を $2$ 回繰り返す方法の例を挙げます.

  • $(1,1) \rightarrow (1,2) \rightarrow (2,2)$ と移動するとき,通ったマスに書かれた数字は順に $1,2,1$ です.
  • $(2,1) \rightarrow (1,1) \rightarrow (1,2)$ と移動するとき,通ったマスに書かれた数字は順に $3,1,2$ です.

通ったマスに書かれた数字が順に $3,2,1$ になるような移動方法は存在せず,この書き込み方は確かに条件を満たしています.

サンプル2
入力
3 4 4 1
出力
121
221
213

サンプル3
入力
3 3 3 3
出力
121
313
232

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。