比赛 20140714上午练习 评测结果 AAAAAAAAAA
题目名称 冲出亚马逊之圣战前夜 最终得分 100
用户昵称 Ra-xp 运行时间 0.007 s
代码语言 C++ 内存使用 4.13 MiB
提交时间 2014-07-14 10:02:17
显示代码纯文本
/*
foold fill......种子填充算法
*/
#include<iostream>
#include<fstream>
#include<string>
#include<vector>
#define MAXN 1000
using namespace std;
int n, m=0;
bool T=false;
int fild[MAXN][MAXN]={-2};

void dfs(int x, int y, int z)
{
	if(fild[x][y]==0||fild[x][y]==2||fild[x][y]==5)
	{
		fild[x][y]=-1;
		m++;
		if(x==n-1&&y==n-1)
		{
			T=true;
			cout<<"yes"<<endl;
		}
		else
		{
			if(x+1<n)dfs(x+1, y, z);
			if(x-1>=0)dfs(x-1, y, z);
			if(y+1<n)dfs(x, y+1, z);
			if(y-1>=0)dfs(x, y-1, z);
		}
	}
}

int main()
{
	freopen("ymxpre.in","r",stdin);
	freopen("ymxpre.out","w",stdout);
	int i, j, k, l, p;
	string work[MAXN];
	cin>>n;
	for(i=0;i<n;i++)
	{
		cin>>work[i];
	}
	
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
			fild[i][j]=int(work[i][j])-48;
		}
	}
	
	i=0;
	j=0;
	k=1;
	dfs(i, j, k);
	
	if(T==false)
	{
		cout<<"no"<<endl;
		
	}
	cout<<m<<endl;
	return 0;
}