记录编号 |
248236 |
评测结果 |
AAAAAAAAAA |
题目名称 |
冲出亚马逊之圣战前夜 |
最终得分 |
100 |
用户昵称 |
liu_runda |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.022 s |
提交时间 |
2016-04-10 09:47:38 |
内存使用 |
0.28 MiB |
显示代码纯文本
#include<cstdio>
#include<cctype>
const int maxn=105;
bool pass[maxn][maxn];
bool vis[maxn][maxn];
int cnt=0;
int dire[4][2]={{0,1},{0,-1},{1,0},{-1,0}};
bool read(){
char ch;
while(ch=getchar(),!isdigit(ch));
if(ch=='0'||ch=='2'||ch=='5')return true;
return false;
}
void dfs(int x,int y){
if(!pass[x][y])return;//起点无法通过。。输出0
cnt++;
vis[x][y]=true;
int _x,_y;
for(int i=0;i<4;++i){
_x=x+dire[i][0];_y=y+dire[i][1];
if(pass[_x][_y]&&!vis[_x][_y])dfs(_x,_y);
}
}
int main(){
freopen("ymxpre.in","r",stdin);
freopen("ymxpre.out","w",stdout);
int n;scanf("%d",&n);
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j){
pass[i][j]=read();
}
}
dfs(1,1);
if(vis[n][n])printf("yes\n");
else printf("no\n");
printf("%d\n",cnt);
fclose(stdin);fclose(stdout);
return 0;
}
/*
4
0010
4534
0501
1302
*/