No.3731 Kaleidoscope
問題文
各マスが白または黒に塗られた $N \times N$ グリッドであって、以下の全ての条件を満たすものを $1$ つ出力してください。ただし、グリッドの大きさ $N$ は入力では与えられず、あなたが自由に定めることができます。
- $2 \leq N \leq 2^{10}$
- マス $(1, 1)$、$(N, N)$ は白く塗られている
- $1 \leq i \leq |S|$ について、文字列 $S$ の $i$ 文字目が
oであるとき、マス $(1,1)$ から $(N,N)$ まで、右方向または下方向に隣接する白く塗られたマスへの移動を繰り返して移動する経路で、途中で $i$ 回曲がるようなものが存在する。 - $1 \leq i \leq |S|$ について、文字列 $S$ の $i$ 文字目が
xであるとき、マス $(1,1)$ から $(N,N)$ まで、右方向または下方向に隣接する白く塗られたマスへの移動を繰り返して移動する経路で、途中で $i$ 回曲がるようなものが存在しない。
ここで、$|S|$ は文字列 $S$ の長さを表します。
また、経路が「途中で $i$ 回曲がる」とは、経路上の移動(初回を除く)のうち、直前の移動と向き(右方向または下方向)が異なるものがちょうど $i$ 回であることを意味します。
なお、曲がる回数が $|S|$ を超える経路については、存在するかどうかを問いません。
条件を満たすグリッドが存在しない場合は -1 を出力してください。
制約
- $S$ は
oとxからなる文字列 - $1 \leq |S| \leq 1000$
入力
入力は以下の形式で標準入力から与えられる。
$S$
出力
条件を満たす塗り方が存在する場合は、以下の形式でその一例を出力してください。ただし、$T_i\ (1 \leq i \leq N)$ は長さ $N$ の文字列であり、$T_i$ の $j$ 文字目はグリッドの上から $i$ 行目、左から $j$ 列目のマスを白く塗る場合は . 、黒く塗る場合は # である必要があります。
$N$ $T_1$ $T_2$ $\vdots$ $T_N$
条件を満たす塗り方が存在しない場合は -1 を出力してください。
最後に改行してください。
ビジュアライザ
出力結果のWeb版ビジュアライザがこちらで提供されています。
コンテスト中における、ビジュアライズ結果の共有や解法・考察に関する言及は禁止されています。ご注意下さい。
また、ビジュアライザの仕様に関する質問は原則受け付けません。あくまで補助ツールとしてご利用ください。
サンプル
サンプル1
入力
oxo
出力
3 .## ..# ...
途中で $1$ 回曲がる経路の例は $(1, 1) \rightarrow (2, 1) \rightarrow (3, 1) \rightarrow (3, 2) \rightarrow (3, 3)$ です。
途中で $2$ 回曲がる経路は存在しません。
途中で $3$ 回曲がる経路の例は $(1, 1) \rightarrow (2, 1) \rightarrow (2, 2) \rightarrow (3, 2) \rightarrow (3, 3)$ です。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。