比赛 20140714上午练习 评测结果 AAAAAAAAAA
题目名称 冲出亚马逊之圣战前夜 最终得分 100
用户昵称 努力吧 运行时间 0.003 s
代码语言 C++ 内存使用 0.35 MiB
提交时间 2014-07-14 11:18:14
显示代码纯文本
#include<fstream>
using namespace std;
ifstream fi("ymxpre.in");
ofstream fo("ymxpre.out");
int a[101][101];
int x,y;
int s=0;
int n;
void ymdfs(int i,int j);
int main()
{
	fi>>n;
	char b[101][101];
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			fi>>b[i][j];
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			a[i][j]=b[i][j]-'0';
	ymdfs(1,1);
	if(a[n][n]==6)
		fo<<"yes"<<endl;
	else
		fo<<"no"<<endl;
	fo<<s<<endl;
}

void ymdfs(int i,int j)
{
	if(a[i][j]==0||a[i][j]==2||a[i][j]==5)
	{
		a[i][j]=6;
		x=i;y=j;
		s++;
		if((a[i][j+1]==0||a[i][j+1]==2||a[i][j+1]==5)&&j+1>=1&&j+1<=n)
			ymdfs(i,j+1);
		if((a[i][j-1]==0||a[i][j-1]==2||a[i][j-1]==5)&&j-1>=1&&j-1<=n)
			ymdfs(i,j-1);
		if((a[i-1][j]==0||a[i-1][j]==2||a[i-1][j]==5)&&i-1>=1&&i-1<=n)
			ymdfs(i-1,j);
		if((a[i+1][j]==0||a[i+1][j]==2||a[i+1][j]==5)&&i+1>=1&&i+1<=n)
			ymdfs(i+1,j);
	}
	else
		return;
}