记录编号 129365 评测结果 AAAAAAAAAA
题目名称 冲出亚马逊之圣战前夜 最终得分 100
用户昵称 Gravatar奶猹 是否通过 通过
代码语言 C++ 运行时间 0.004 s
提交时间 2014-10-19 20:17:45 内存使用 0.36 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
int n;
int a[110][110];
bool b[110][110]={0};
int ans=1;
bool flag=false;

void init();
void work();
void outit();

int main()
{
	freopen("ymxpre.in","r",stdin);
	freopen("ymxpre.out","w",stdout);
	init();
	work();
	outit();
	return 0;
}
void init()
{
	scanf("%d",&n);
	memset(a,-1,sizeof(a));
	scanf("\n");
	char ch;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			scanf("%c",&ch);
			a[i][j]=ch-'0';
		}
		scanf("\n");
	}
	
}
void work()
{
	if(a[1][1]!=0&&a[1][1]!=2&&a[1][1]!=5)
	{
		ans=0;
		return ;
	}
	queue <int> qx,qy;
	qx.push(1);
	qy.push(1);
	b[1][1]=1;
	while(!qx.empty())
	{
		int x=qx.front();
		int y=qy.front();
		if(x==n&&y==n)
		{
			flag=true;
			return ;
		}
		if((a[x][y+1]==0||a[x][y+1]==2||a[x][y+1]==5)&&!b[x][y+1])
		{
			b[x][y+1]=1;
			qx.push(x);
			qy.push(y+1);
			ans++;
		}
		if((a[x][y-1]==0||a[x][y-1]==2||a[x][y-1]==5)&&!b[x][y-1])
		{
			b[x][y-1]=1;
			qx.push(x);
			qy.push(y-1);
			ans++;
		}
		if((a[x+1][y]==0||a[x+1][y]==2||a[x+1][y]==5)&&!b[x+1][y])
		{
			b[x+1][y]=1;
			qx.push(x+1);
			qy.push(y);
			ans++;
		}
		if((a[x-1][y]==0||a[x-1][y]==2||a[x-1][y]==5)&&!b[x-1][y])
		{
			b[x-1][y]=1;
			qx.push(x-1);
			qy.push(y);
			ans++;
		}
		qx.pop();
		qy.pop();
	}
}
void outit()
{
	if(flag)printf("yes\n");
	else printf("no\n");
	printf("%d\n",ans);
}