题号:NC23999
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld
题目描述
我们知道 CSL 不仅擅长在天上飞,也擅长在地上跑,不止如此 CSL 还擅长走迷宫。然而 CSL 把把都能走最短路,觉得迷宫造的太短了,于是 CSL 想要造出尽可能长的迷宫。
已知 CSL 有一个大小为

的二维迷宫,在迷宫中每次能往上下左右任一无障碍的方向走一步,起点在左上角,终点在右下角,CSL 可以通过往迷宫中添加障碍来造迷宫,但不允许完全堵住起点到终点间的所有路径。现在你需要求出,CSL 造出的迷宫中从起点到终点的最短距离的最大值,并且给出一种造迷宫的方案。
输入描述:
仅一行,有两个整数n, m,分别表示迷宫的长和宽。
输出描述:
第一行输出一个整数,表示最长的距离。
之后输出一个 n 行 m 列的迷宫建造方案,其中用’X'表示障碍,‘.'表示空地。
示例2
输出
复制
20
......
XXXXX.
......
.XXXXX
......