CF106D Treasure Island
题目描述
我们勇敢的旅行者到达一个岛上,海盗在那里埋下了财宝。然而,当船即将停泊时,船长发现藏宝图被老鼠吃掉了一部分。
藏宝图可以表示为一个大小为$n\times m$的网格图。每个单元格代表地图上的一块正方形(正方形的边长等于一英里)。有些单元格代表海洋,它们是不可达的。所有其他单元格都是可达的,其中一些单元格有视野。
此外,地图还有一套共$k$个指令。每个指令的格式如下:“沿$y$方向走$n$英里”
可能的方向有:北、南、东和西。如果你仔细地遵循这些指示(你应该一个接一个地完成所有的指示),那么你应该准确地到达埋藏宝藏的地方。
不幸的是,船长不知道从哪个单元格开始执行指令,因为地图上的那一部分已经丢失了。但是船长很清楚地记得那个单元格有视野。另外,船长知道整个过程都经过岛上的可达单元格。
船长想知道哪些单元格值得一看。
输入格式
第一行两个整数 $n$,$m$($3 \le n,m \le 1000$)。
接下来 $n$ 行,每行 $m$ 个字符。“#”表示不可达单元格,“.”表示可达但没有视野的单元格,大写字母表示可达且有视野的单元格。
接下来一行,一个整数 $k$($1 \le k \le 10^5$)。
接下来 $k$ 行,每行一个字符 $dir$,一个整数 $len$($1 \le len \le 1000$),表示这条指令的内容为向 $dir$ 方向走 $len$ 步。“N”表示北,“S”表示南,“W”表示西,“E”表示东。定义向上为北。
输出格式
一行若干个大写字母,表示可能作为起点的单元格。如果不存在,输出`no solution`