#XMOJ11880. 涂色
涂色
说明
时间限制:1 Sec
内存限制:256 MB
输入文件:paint.in 输出文件:paint.out
你要构造一个行数与列数相等的正方形网格,恰好涂黑 $N$ 个格子。
要求:任意一行或者任意一列中,黑色格子的数量最多为 $K$ 个。
输出满足条件的网格的最小边长,同时输出该边长下一种可行的涂色方案。
输入格式
第一行两个整数 $N,K$。
输出格式
第一行输出整数 $M$,代表正方形网格的边长(行数=列数),$M$ 必须是满足条件的最小可能值。
接下来输出 $M$ 行,每行是长度为 $M$ 的字符串。
字符 "#" 代表该格子涂黑,"." 代表不涂黑。
要求:
- 所有 "#" 的总数恰好等于 $N$;
- 任意一行、任意一列里 "#" 的数量不能超过 $K$。
样例
样例 1
8 2
4
##..
##..
..##
..##
样例说明:
存在其他正确答案。
样例 2
5 1
5
#....
....#
...#.
.#...
..#..
数据范围
对于 50% 的数据,$K \le N \le 20$。
对于 100% 的数据,$1 \le K \le N \le 1000$。
相关
在下列比赛中: