P15188 [SWERC 2019] Pixels

题目描述

保护野生动物的方法多种多样。其中之一是制作能够激励人们的海报,这是艺术家的工作。有些需要被激励的人是极客,因此一些艺术家专注于像素艺术。 一位艺术家准备了一幅黑白动物像素画。这些画应该显示在一个巨大的像素化矩形屏幕上,屏幕有 $K$ 行(从上到下编号为 0 到 $K-1$)和 $L$ 列(从左到右编号为 0 到 $L-1$):你的工作就是在这种屏幕上显示画作。 初始化屏幕时,它只显示白色像素。然后,每个像素应由开关单独控制,按下像素 $P$ 的开关应当改变 $P$ 的颜色,从黑变白或从白变黑。然而,屏幕有缺陷:按下像素 $P$ 的开关也会改变与 $P$ 有公共边的那些像素的颜色,即水平或垂直相邻(但不是对角线相邻)的像素。尽管如此,通过恰当地选择按下哪些开关,即使是有缺陷的屏幕也可能显示你手中的画作。 你能设法显示那幅画吗?如果能,应该按下哪些开关的集合? ### 注意 注意按下开关的顺序并不重要,而且不需要按两次同一个开关。因此,一个解决方案可以完全由按下的开关集合描述。可能有多个解决方案,即多个合适的开关集合。在这种情况下,你的输出只需要表示其中一个解决方案。

输入格式

- 第一行包含两个整数 $K$ 和 $L$,以空格分隔。 - 对于所有满足 $0 \leq i < K$ 的 $i$,第 $i+2$ 行包含 $L$ 个符号 “B” 或 “W”,以空格分隔:如果第 $j$ 个符号($0 \leq j < L$)是 “B”,那么显示在第 $i$ 行第 $j$ 列的像素应为黑色;否则,应为白色像素。

输出格式

如果无法显示该画作,输出一行 **IMPOSSIBLE**。 否则,输出 $K$ 行,每行包含 $L$ 个字符,表示按开关的方案。每个字符应为 **A**(表示不按该开关)或 **P**(表示按下该开关)。字符之间用一个空格分隔。 如果有多种可能的方案,输出任意一种即可。

说明/提示

#### 样例解释 1 每当你按下一个开关时,两个像素的颜色都会改变。因此,它们总是具有相同的颜色,无法显示该画作。 #### 样例解释 2 你可以验证,如果按下左图中红色像素对应的开关,你将得到右图所示的图案。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/mze8ciiu.png) ::: #### 数据范围 - $1 \leq K \times L \leq 100\,000$。 翻译由 DeepSeek 完成