No.883 ぬりえ

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 77
作問者 : QCFiumQCFium / テスター : e869120e869120
6 ProblemId : 3339 / 出題時の順位表

問題文

あなたは行数と列数が等しいグリッドを一つ作ってそのうちちょうど$N$個のマスを黒く塗りたいと思っています。
但し一つの行又は列にある黒マスの数は高々$K$個でなければなりません。
グリッドの行数の最小値を出力した上で、その行数で実際にどのマスを黒く塗れば良いかを出力してください。

入力

$N\ K$

$1 \le K \le N \le 1000$
$K$及び$N$は整数

出力

次の形式で出力してください。

$M$
$A_{1,1}A_{1,2}A_{1,3}\dots A_{1,M}$
$A_{2,1}A_{2,2}A_{2,3}\dots A_{2,M}$
$A_{3,1}A_{3,2}A_{3,3}\dots A_{3,M}$
$\hspace{7pt} \vdots \hspace{17pt} \vdots \hspace{16pt} \vdots \hspace{9pt} \ddots \hspace{8pt} \vdots$
$A_{M,1}A_{M,2}A_{M,3}\dots A_{M,M}$
$M$は答えの行数(=列数)を表し、条件を満たすグリッドの行数の最小値でなければなりません。
$A_{i,j}$は#又は.でなければならず、#ならグリッドの$i$行目$j$列目が黒であることを、.ならそうでないことを表します。
全ての#の個数は$N$に等しくなければならず、一つの列又は行にある#の個数は$K$を超えてはなりません。

サンプル

サンプル1
入力
8 2
出力
4
##..
##..
..##
..##

これ以外にも正答はあります。

サンプル2
入力
5 1
出力
5
#....
....#
...#.
.#...
..#..

提出ページヘ
下のフォームでの入力は、テキストボックスにフォーカスがない場合は、(Onにしている場合)ショートカットキー・スマートサブミットの影響を受けるので、必要なら提出ページに遷移してください。

言語
問題によって提出できない言語があります。参考
ソースコード
ソースコードのテキストボックスに文字がある場合はファイルは無視されます。
テキストボックスで提出するとCR(\r)が除去されますが、ファイルで提出すると除去されません。