问题描述
以矩阵的形式给定一张地图和机器人的初始位置。矩阵上每一点的字母代表在这一点机器人移动的方向,输出机器人走出地图所需要的步数,如果机器人无法走出地图(陷入循环),则输出进入循环前的步数。
输入样例:
3 6
1 5
NEESWE
WWWSSS
SNWWWW
输出样例:
8
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char s[100][100]={0};
int m,n,p,q;
cin>>m>>n;
cin>>p>>q;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
cin>>s[i][j];
}
int count=0;
for(int i=p;;)
{
for(int j=q;;)
{
if(s[i][j]=='N')
{
count++;
s[i][j]='1';
i--;
}
else if(s[i][j]=='S')
{
count++;
s[i][j]='1';
i++;
}
else if(s[i][j]=='W')
{
count++;
s[i][j]='1';
j--;
}
else if(s[i][j]=='E')
{
count++;
s[i][j]='1';
j++;
}
if(s[i][j]=='\0'||s[i][j]=='1')
{
cout<<count<<endl;
goto stop;
}
}
stop:break;
}
return 0;
}