G - ABCのG問題 Editorial

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 300300

問題文

NN 個のグリッドがあります。i (1iN)i\ (1 \leq i \leq N) 番目のグリッドの大きさは HiH_iWiW_i 列です。NN 個のグリッドそれぞれについて、以下の条件を満たすようにグリッドの各マスに A, B, C のいずれかを書き込んでください。

  • (一方に A が、もう一方に B が書かれている隣接したマスのペアの個数) ==
    (一方に B が、もう一方に C が書かれている隣接したマスのペアの個数) ==
    (一方に C が、もう一方に A が書かれている隣接したマスのペアの個数)
  • グリッドの各行・各列に A, B, C はそれぞれ一つ以上書かれている。

ただし、グリッド上の 22 つのマスは頂点または辺を共有するときに隣接していると見なします。

なお、この問題の制約の範囲で、条件を満たすようなグリッドへの書き込み方が必ず存在することが証明できます。

制約

  • 1N1,0001 \leq N \leq 1,000
  • 4Hi1,0004 \leq H_i \leq 1,000
  • 4Wi1,0004 \leq W_i \leq 1,000
  • i=1NHi×Wi106\sum_{i=1}^{N} H_i \times W_i \leq 10^6
  • 入力は全て整数である。

入力

入力は以下の形式で標準入力から与えられる。

NN
H1H_1 W1W_1
H2H_2 W2W_2
\vdots
HNH_N WNW_N

出力

以下の形式で各 i (1iN)i\ (1 \leq i \leq N) ごとに、条件を満たす HiH_iWiW_i 列のグリッドを出力せよ。ここで、Syxi (1yHi,1xWi)S^i_{yx}\ (1 \leq y \leq H_i, 1 \leq x \leq W_i)ii 番目のグリッドの yyxx 列目に書き込む文字で、A, B, C のいずれかである。

S111S121...S1W11S^1_{11}S^1_{12}...S^1_{1W_1}
S211S221...S2W11S^1_{21}S^1_{22}...S^1_{2W_1}
\vdots
SH111SH121...SH1W11S^1_{H_11}S^1_{H_12}...S^1_{H_1W_1}
\vdots
S11NS12N...S1WNNS^N_{11}S^N_{12}...S^N_{1W_N}
S21NS22N...S2WNNS^N_{21}S^N_{22}...S^N_{2W_N}
\vdots
SHN1NSHN2N...SHNWNNS^N_{H_N1}S^N_{H_N2}...S^N_{H_NW_N}

入力例1Copy

Copy
1
4 4

出力例1Copy

Copy
ABCC
CACB
BCAA
CABA

下の図は出力例 11 の、ABBCCA が書かれた隣接 22 マスをそれぞれ赤線、緑線、青線で示しています。赤線、緑線、青線はそれぞれ等しく 1010 本ずつあり、各行・各列に A, B, C がそれぞれ一つ以上含まれているため、この出力は条件を満たしています。

出力例 11 の隣接マス


入力例2Copy

Copy
2
4 5
5 4

出力例2Copy

Copy
CACCB
CBBAA
ACABC
BACBB
BCBA
CAAB
AACB
ABCC
BBCA

出力している 4455 列のグリッドと 5544 列のグリッドはそれぞれ条件を満たしています。



2025-04-04 (Fri)
09:04:37 +00:00