No.3725 Exploit Wall
問題文
Alice と Bob が $N \times N$ のグリッド上でゲームをします。グリッドの $i$ 行 $j$ 列のマスを $(i, j)$ と表します。
ゲームの手順は以下の通りです。
- 手順 $1$. Alice がグリッドの各マスを白または黒のいずれかで塗る
- ただし、$(1, 1)$ と $(N, N)$ は必ず白く塗る
- この時点で、$(1, 1)$ と $(N, N)$ は白マスを通って行き来可能であってはならない
- 手順 $2$. Bob が次の $2$ つの行動のどちらか一方を選んで行う。
- $2 \leq i \leq j \leq N-1$ をみたす組 $(i, j)$ を選び、上から $i$ 行目から $j$ 行目までの $j-i+1$ 行に含まれるマスの色を全て反転(白を黒、黒を白に)する
- $2 \leq i \leq j \leq N-1$ をみたす組 $(i, j)$ を選び、左から $i$ 列目から $j$ 列目までの $j-i+1$ 列に含まれるマスの色を全て反転(白を黒、黒を白に)する
- 手順 $3$. $(1, 1)$ と $(N, N)$ が白マスを通って行き来可能である場合、Alice の勝ちとなる。可能でない場合、Bob の勝ちとなる。
Bob がどのように行動しても Alice がゲームに勝てるような、手順 $1$ におけるグリッドの塗り方は存在しますか?存在する場合は、その一例を出力してください。存在しない場合は -1 を出力してください。
ただし、「$(1, 1)$ と $(N, N)$ が白マスを通って行き来可能である」とは、マス $(1, 1)$ から上下左右に隣接する白く塗られたマスへの移動を繰り返すことでマス $(N, N)$ に到達できることを意味します。
制約
- 入力は全て整数
- $3 \leq N \leq 100$
入力
入力は以下の形式で標準入力から与えられる。
$N$
出力
条件を満たす塗り方が存在する場合は、以下の形式でその一例を出力してください。ただし、$S_i\ (1 \leq i \leq N)$ は長さ $N$ の文字列であり、$S_i$ の $j$ 文字目はグリッドの上から $i$ 行目、左から $j$ 列目のマスを白く塗る場合は . 、黒く塗る場合は # である必要があります。条件を満たす塗り方が存在しない場合は -1 を出力してください。
$S_1$ $S_2$ $\vdots$ $S_N$
最後に改行してください。
ビジュアライザ
出力結果のWeb版ビジュアライザがこちらで提供されています。
コンテスト中における、ビジュアライズ結果の共有や解法・考察に関する言及は禁止されています。ご注意下さい。
また、ビジュアライザの仕様に関する質問は原則受け付けません。あくまで補助ツールとしてご利用ください。
サンプル
サンプル1
入力
3
出力
.#. ### .#.
Bob が行える操作は、$2$ 行目の各マスの色を反転するか、$2$ 列目の各マスの色を反転するかのどちらかです。どちらを行ったとしても、$(1, 1)$ と $(N, N)$ が白マスを通って行き来可能となります。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。