⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 4633554_ac_0ms_240k.cpp

📁 部分PKU上的源码
💻 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 + -