比赛 |
20140714上午练习 |
评测结果 |
AAAAAAAAAA |
题目名称 |
冲出亚马逊之圣战前夜 |
最终得分 |
100 |
用户昵称 |
wolf |
运行时间 |
0.004 s |
代码语言 |
C++ |
内存使用 |
0.33 MiB |
提交时间 |
2014-07-14 10:02:55 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<vector>
using namespace std;
FILE *in,*out;
bool TT[110][110];
int dir[4][2];
int N,sum;
bool turn(char a){
if(a=='0'||a=='2'||a=='5'){
return 1;
}
return 0;
}
bool core(int x,int y){
++sum;
TT[x][y]=0;
if(x==N-1&&y==N-1)
return 1;
bool io=0;
for(int i=0;i!=4;++i){
int xn,yn;
xn=x+dir[i][0];
yn=y+dir[i][1];
if(xn<0||xn==N)
continue;
if(yn<0||yn==N)
continue;
if(TT[xn][yn]){
if(core(xn,yn))
io=1;
}
}
return io;
}
int main(){
in=fopen("ymxpre.in","r");
out=fopen("ymxpre.out","w");
fscanf(in,"%d",&N);
for(int i=0;i!=N;++i){
for(int k=0;k!=N;++k){
char txt;
fscanf(in," %c",&txt);
TT[i][k]=turn(txt);
}
}
/*for(int i=0;i!=N;++i){
for(int k=0;k!=N;++k){
cout<<TT[i][k];
}
cout<<endl;
}*/
dir[0][0]=-1;
dir[0][1]=0;
dir[1][0]=0;
dir[1][1]=-1;
dir[2][0]=1;
dir[2][1]=0;
dir[3][0]=0;
dir[3][1]=1;
sum=0;
if(TT[0][0]){
}else{
fprintf(out,"no\n0");
return 0;
}
if(core(0,0)){
fprintf(out,"yes\n%d",sum);
//cout<<endl<<"yes"<<endl<<sum;
}else{
fprintf(out,"no\n%d",sum);
//cout<<endl<<"no"<<endl<<sum;
}
return 0;
}
//designed by wolf