QOJ.ac

QOJ

Límite de tiempo: 5 s Límite de memoria: 2048 MB Puntuación total: 100

#7699. 珍珠

Estadísticas

Puzzletown 的 Nikoli 珠宝店出售一系列由黑珍珠和白珍珠组成的项链。项链上的珍珠牢固地粘在长度为 $k$ 的绳子上,绳子的每一单位长度要么是一颗珍珠,要么是空的。每条项链都展示在一个划分为网格的矩形天鹅绒表面上,网格中的每个单元格要么包含一颗珍珠,要么包含一个单位的空绳,或者既没有珍珠也没有绳子。所有的绳子部分要么是水平的,要么是垂直的。一条正确展示的项链对应于连接显示表面部分单元格的闭合、不自交的路径。

由于这里毕竟是 Puzzletown,Nikoli 使用了一些棘手的规则来管理项链的展示方式,即一种名为“Masyu”(珍珠项链)的谜题规则。当项链沿着路径放置时(绳子上的间距单位与显示表面上的网格间距相匹配),珍珠必须满足 Masyu 谜题的约束,即:

  • 白珍珠不能放置在包含路径转角的单元格上;此外,穿过该珍珠的路径所延伸的两个相邻单元格中,至少有一个必须包含转角。
  • 黑珍珠必须放置在包含路径转角的单元格上;此外,穿过该黑珍珠的路径所延伸的两个相邻单元格中,都不能包含转角。

图 J.1 展示了一个正确展示的项链示例(这也对应于样例输入 1)。

图 J.1:长度为 16 的项链及其展示平台

Nikoli 的客户比较挑剔,因此他对项链提出了三个额外的限制。项链长度的至少一半由珍珠组成,而不是空的绳子部分。由于黑珍珠比白珍珠更受欢迎(或者至少更昂贵),Puzzletown 的富裕居民坚持要求黑珍珠的数量至少是白珍珠数量的两倍。最后,任意两颗珍珠之间空绳的间距不得超过五个单位。

Nikoli 有时发现,一旦他按照这些限制制作了一条项链,他就无法按照上述规则将其展示出来。请帮帮他!

输入格式

第一行包含 3 个整数 $k, n$ 和 $m$,其中 $k$ ($5 \le k \le 60$) 是绳子的长度,$n$ 和 $m$ ($5 \le n, m \le 50$) 分别是天鹅绒网格的行数和列数。左上角单元格为第 1 行,第 1 列。第二行包含一个长度为 $k$ 的字符串,仅由字符 ‘B’、‘W’ 和 ‘.’ 组成(分别代表黑珍珠、白珍珠和空绳段)。第一个字符始终是珍珠——即 ‘B’ 或 ‘W’。第三行包含两个整数 $r$ 和 $c$ ($1 \le r \le n, 1 \le c \le m$),表示字符串中第一颗珍珠所在的网格行号和列号。

输出格式

如果存在一种在给定网格边界内展示项链的正确方法,请打印项链布局的路径描述,假设字符串中的第一颗珍珠位于网格的第 $r$ 行、第 $c$ 列,并且路径按照输入字符串的顺序描述珍珠和空位。路径描述应由字母 N、S、E 和 W 组成,表示路径从当前单元格向北、南、东或西延伸。路径应该是闭合的且不能自交。如果存在多条这样的路径,输出字典序最小的那一条。

如果没有满足 Masyu 约束的可能路径,输出 impossible

样例

样例输入 1

16 5 6
B.B.B.BW.WB..WB.
3 1

样例输出 1

EENNEESSSSWWWWNN

样例输入 2

6 5 5
W..B.B
3 3

样例输出 2

impossible

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.