#P1729. Jack and Jill
Jack and Jill
描述
自从山上发生那起事件后, 和 互相厌恶,希望彼此尽可能保持距离。 和 每天都必须去上学; 上男校, 上女校,两所学校的上课时间相同。你被他们的律师聘请来安排两人的路线和时间表,以确保他们在上学途中的任意时刻的直线距离尽可能最大化。
和 居住的小镇是一个由 的正方形网格构成的地图。从一个位置走到相邻的位置需要 分钟。在最大化两人距离时,只需考虑他们所在位置的直线距离(即无需考虑他们在移动过程中路径上的中间点)。某些位置由于河流、建筑物等原因无法通行。 必须从他的家出发,连续行走直到到达学校; 也必须同时从她的家出发,连续行走直到到达她的学校。 的家和学校对 来说是禁行的,反之亦然。其他对两人都禁行的位置会在输入中给出。
输入格式
输入包含多个测试用例。每个测试用例的第一行是一个整数 ,随后是 行,每行包含 个字符,表示小镇的地图。在地图中:
- 表示 的家
- 表示 的学校
- 表示 的家
- 表示 的学校
- 表示禁行区域
- 表示可通行区域
假设地图遵循常规的制图方向:上方为北,左侧为西。最后一个测试用例后是一个单独的行,包含一个 。
输出格式
对于每个测试用例,输出三行:
. 第一行输出 和 在上学途中的最小直线距离(保留位小数)。
. 第二行输出 Jack 的路线,由一系列方向组成,表示每分钟的移动方向。
. 第三行输出的路线,格式与 的路线相同。
如果有多个可行的路线组合,输出任意一种即可。题目保证至少存在一个解。连续测试用例的输出之间用空行分隔。
示例输入
10
..........
...H......
.**...s...
.**.......
.**.......
.**.......
.**.......
.**.......
...S..h..*
..........
0
示例输出
6.71
WWWSSSSSSSEEE
NEEENNNNNWWW
来源
Waterloo local 2004.01.31