QOJ.ac

QOJ

時間限制: 3 s 記憶體限制: 2048 MB 總分: 100

#2651. 像素

统计

保护野生动物的方法有很多种。其中一种是制作能够激励人们的海报,而这正是艺术家的工作。那些需要被激励的人群中包括极客,这就是为什么一些艺术家专注于像素艺术。

一位艺术家准备了一幅用于描绘动物的黑白像素画。这些画作应该显示在一个巨大的像素化矩形屏幕上,该屏幕有 $K$ 行(从上到下编号为 $0$ 到 $K-1$)和 $L$ 列(从左到右编号为 $0$ 到 $L-1$):在这样的屏幕上显示画作是你的任务。

当你初始化屏幕时,它只显示白色像素。之后,其像素应由开关单独控制,按下像素 $P$ 的开关应该改变 $P$ 的颜色,即从黑色变为白色,或从白色变为黑色。然而,屏幕有一个缺陷:按下像素 $P$ 的开关也会改变与 $P$ 有公共边的那些像素的颜色,即那些在水平或垂直方向上相邻(但不包括对角线)的像素。尽管如此,通过适当地选择要按下的开关,这台有缺陷的屏幕仍然可能显示出你手头的画作。

你能设法显示出那幅画吗?如果可以,你应该按下哪组开关?

说明

请注意,按下开关的顺序并不重要,且没有必要按下同一个开关两次。因此,一个解法可以完全由所按下的开关集合来描述。可能存在多个解法,即多组合适的开关。在这种情况下,你的输出只需表示其中一个解法即可。

输入格式

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

输出格式

如果无法通过按下开关来显示所需的画作,你的输出应包含一行,内容为 “IMPOSSIBLE”,且不包含其他内容。

否则,你的输出应包含 $K$ 行,每行包含 $L$ 个符号 “A” 或 “P”,以空格分隔: * 对于所有满足 $0 \leqslant i < K$ 和 $0 \leqslant j < L$ 的 $i$ 和 $j$,如果第 $i+1$ 行的第 $j$ 个符号是 “P”,则你应该按下与第 $i$ 行第 $j$ 列像素相关联的开关;否则,你应该避免按下该开关。

数据范围

  • $1 \leqslant K \times L \leqslant 100\,000$

样例

输入格式 1

1 2
B W

输出格式 1

IMPOSSIBLE

说明

每当你按下开关,两个像素的颜色都会改变。因此,它们总是具有相同的颜色,无法显示该画作。

输入格式 2

5 22
B B B W B W W W B W B B B W B B B B W B B B
B W W W B W W W B W B W W W B W W B W B W W
B B B W B W B W B W B B B W B B B B W B W W
W W B W B W B W B W B W W W B W B W W B W W
B B B W W B W B W W B B B W B W W B W B B B

输出格式 2

A P P A P P A A P A A P P P A A P A P A P A
A P P A P A P P A P A P A A A A A P P P A A
A P P A P P A A A P P A A P P A A P A P A A
A A A A A A P P A P P P A A P A A P P P P A
A P A A A A P A P P P A P A P P A P P P A P

说明

你可以确实检查一下,如果你按下左图中与红色像素相关联的开关,你将得到右图所示的图片。

样例说明 2 的图片

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.