📄 4633554_ac_0ms_240k.cpp
字号:
#include<iostream>
using namespace std;
int grid[15][15];
int row,column,start;
char map[15][15];
int result;
int r1,r2;
void go(int r,int c,int step)
{
if(r<1||r>row||c<1||c>column) {result=1;r1=step-1;return;}
if(grid[r][c]==0)
{
grid[r][c]=step;
switch(map[r][c])
{
case 'N':go(r-1,c,step+1);return;
case 'E':go(r,c+1,step+1);return;
case 'S':go(r+1,c,step+1);return;
case 'W':go(r,c-1,step+1);return;
}
}
else
{
result=2;
r1=grid[r][c]-1;
r2=step-grid[r][c];
return;
}
}
int main()
{
while(cin>>row>>column>>start)
{
if(row==0) return 0;
for(int i=1;i<=row;i++)
{
for(int j=1;j<=column;j++)
{
cin>>map[i][j];
}
}
memset(grid,0,sizeof(grid));
go(1,start,1);
if(result==1) cout<<r1<<" step(s) to exit"<<endl;
else cout<<r1<<" step(s) before a loop of "<<r2<<" step(s)"<<endl;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -