2011年6月25日 星期六

11831 - Sticker Collector Robot


機器人競技賽在RoboLand是一種很受歡迎的運動,這項運動在大小為N*M的四方型場地舉行,場地中有些位置是空的,有些位置上有貼紙,也有些用來撐起屋項的柱子。這項運動的一開始機器人會站在場地中某個位置,並以一連串指令決定行進的路徑,指令共有三種:'D'指令表示右轉90度,'E'指令表示 左轉90度,'F'指令表示進行一格。當機器人站在有貼紙的位置上時,它會把貼紙收集起來,而地上的貼紙一個位置最多只有一張,被取走後該位置就不會有貼 紙了。如果機器人向前進的位置上有柱子或是將要離開場地的話,它不會前進也不會轉動方向。
給定場地的相關資訊,包含場地大小與貼紙、柱子的位置,及一連串的指令,請你寫一個程式計算機器人一路上共收集了幾張貼紙。

Input

輸入有許多測試資料,每組資料的第一列有三個整數N, M, S(1 <= N, M <= 100, 1 <= S <= 50000),分別表示場地的列數、行數,與機器指令的個數。接下來的N列每列有M個字元表示整個場地的地圖,最上方一列是北方,最左邊一行是西方。

地圖上每個字元表示如下:
  • '.' -- 空的格子。
  • '*' -- 有貼紙的格子。
  • '#' -- 有柱子的格子。
  • 'N', 'S', 'L', 'O' -- 分別表示機器人一開始所在位置及其面對的方向(分別表示北方、南方、東方、西方)。
每組資料的最後一列為一字串,表示給機器人的指令,所有字元只會有'D', 'E', 'F'三種字元。

Output 

請在每一列輸出每組測試資料的答案,也就是機器人一路上所收集的貼紙數目。

Sample Input 

3 3 2
***
*N*
***
DE
4 4 5
...#
*#O.
*.*.
*.#.
FFEFF
10 10 20
....*.....
.......*..
.....*....
..*.#.....
...#N.*..*
...*......
..........
..........
..........
..........
FDFFFFFFEEFFFFFFEFDF
0 0 0

Sample Output 

0
1
3

沒有留言:

張貼留言