有一个愚蠢的机器人走进一个w*h的迷宫,迷宫里有空地和陷阱。他想要访问迷宫的每个方格,但是它很笨,只会按照指令的方向走。当机器人不能走的时候,也就是下一步会遇到陷阱或迷宫边界,它会向右转90度(顺时针旋转90度)。请问这个机器人最多可以经过多少个方格。
输入
对于每组数据,第一行两个数w和h,表示迷宫的行和列(1<=w,h<=10)
接下来w行每行有h个字符用于描述这个迷宫。迷宫的‘.’表示空地,即为可以走的地方。‘*’表示陷阱,即为不能走的地方。迷宫中有一个英文字母,表示机器人的出发点,字母只有’U’,’D’,’L’,’R’四种。分别表示机器人的初始指令是向上,向下,向左,向右。
输出
对于每组数据,输出一个整数,即机器人一共经过多少个方格。
源代码:
#include<stdio.h>
#include<string.h>
const int maxnum=10;
char maps[maxnum][maxnum];
int sx,sy;//起始坐标
int w,h;//初始输入的w行h列的地图数据
char dir[]="URDL";
int visited[maxnum][maxnum];
int ans;//ans为最终的答案,即机器人可以走的步数
int dx[]={-1,0,1,0}; //顺序为上右下左 ,顺时针方向
int dy[]={0,1,0,-1};
void dfs(int x,int y,int dir,int steps){
//firstly:设当前所在点为已访问