| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:求0s代码In Reply To:求0s代码 Posted by:kirsten0302 at 2009-11-18 13:39:17 #include<stdio.h>
int bfs[30000][3];
char data[50][50][50];
int i,j,k,sum[50][50][50],level,n,m,si,sj,sk,ei,ek,ej,bfs_num,ok,l;
main()
{
while(1)
{
memset(sum,0,sizeof(sum));
memset(data,0,sizeof(data));
scanf("%d%d%d",&level,&n,&m);
if((level==0)&&(level==n)&&(level==m))
break;
for(i=0;i<level;i++)
for(j=0;j<n;j++)
scanf("%s",data[i][j]);
for(i=0;i<level;i++)
for(j=0;j<n;j++)
for(k=0;k<m;k++)
if(data[i][j][k]=='S')
{
bfs[0][0]=i;bfs[0][1]=j;bfs[0][2]=k;l=0;
}
else if(data[i][j][k]=='E')
{
ei=i;ej=j;ek=k;
}
bfs_num=0;ok=0;
while(bfs_num<=l)
{
for(i=0;i<6;i++)
{
if((i==0)&&(bfs[bfs_num][0]+1<level))
{
if(((data[bfs[bfs_num][0]+1][bfs[bfs_num][1]][bfs[bfs_num][2]]=='.')||(data[bfs[bfs_num][0]+1][bfs[bfs_num][1]][bfs[bfs_num][2]]=='E'))&&(sum[bfs[bfs_num][0]+1][bfs[bfs_num][1]][bfs[bfs_num][2]]==0))
{
l++;
bfs[l][0]=bfs[bfs_num][0]+1;
bfs[l][1]=bfs[bfs_num][1];
bfs[l][2]=bfs[bfs_num][2];
sum[bfs[l][0]][bfs[l][1]][bfs[l][2]]=sum[bfs[bfs_num][0]][bfs[bfs_num][1]][bfs[bfs_num][2]]+1;
if((bfs[l][0]==ei)&&(bfs[l][1]==ej)&&(bfs[l][2]==ek))
{
ok=1;break;
}
}
}
else if((i==1)&&(bfs[bfs_num][0]-1>=0))
{
if(((data[bfs[bfs_num][0]-1][bfs[bfs_num][1]][bfs[bfs_num][2]]=='.')||(data[bfs[bfs_num][0]-1][bfs[bfs_num][1]][bfs[bfs_num][2]]=='E'))&&(sum[bfs[bfs_num][0]-1][bfs[bfs_num][1]][bfs[bfs_num][2]]==0))
{
l++;
bfs[l][0]=bfs[bfs_num][0]-1;
bfs[l][1]=bfs[bfs_num][1];
bfs[l][2]=bfs[bfs_num][2];
sum[bfs[l][0]][bfs[l][1]][bfs[l][2]]=sum[bfs[bfs_num][0]][bfs[bfs_num][1]][bfs[bfs_num][2]]+1;
if((bfs[l][0]==ei)&&(bfs[l][1]==ej)&&(bfs[l][2]==ek))
{
ok=1;break;
}
}
}
else if((i==2)&&(bfs[bfs_num][1]+1<n))
{
if(((data[bfs[bfs_num][0]][bfs[bfs_num][1]+1][bfs[bfs_num][2]]=='.')||(data[bfs[bfs_num][0]][bfs[bfs_num][1]+1][bfs[bfs_num][2]]=='E'))&&(sum[bfs[bfs_num][0]][bfs[bfs_num][1]+1][bfs[bfs_num][2]]==0))
{
l++;
bfs[l][0]=bfs[bfs_num][0];
bfs[l][1]=bfs[bfs_num][1]+1;
bfs[l][2]=bfs[bfs_num][2];
sum[bfs[l][0]][bfs[l][1]][bfs[l][2]]=sum[bfs[bfs_num][0]][bfs[bfs_num][1]][bfs[bfs_num][2]]+1;
if((bfs[l][0]==ei)&&(bfs[l][1]==ej)&&(bfs[l][2]==ek))
{
ok=1;break;
}
}
}
else if((i==3)&&(bfs[bfs_num][1]-1>=0))
{
if(((data[bfs[bfs_num][0]][bfs[bfs_num][1]-1][bfs[bfs_num][2]]=='.')||(data[bfs[bfs_num][0]][bfs[bfs_num][1]-1][bfs[bfs_num][2]]=='E'))&&(sum[bfs[bfs_num][0]][bfs[bfs_num][1]-1][bfs[bfs_num][2]]==0))
{
l++;
bfs[l][0]=bfs[bfs_num][0];
bfs[l][1]=bfs[bfs_num][1]-1;
bfs[l][2]=bfs[bfs_num][2];
sum[bfs[l][0]][bfs[l][1]][bfs[l][2]]=sum[bfs[bfs_num][0]][bfs[bfs_num][1]][bfs[bfs_num][2]]+1;
if((bfs[l][0]==ei)&&(bfs[l][1]==ej)&&(bfs[l][2]==ek))
{
ok=1;break;
}
}
}
else if((i==4)&&(bfs[bfs_num][2]+1<m))
{
if(((data[bfs[bfs_num][0]][bfs[bfs_num][1]][bfs[bfs_num][2]+1]=='.')||(data[bfs[bfs_num][0]][bfs[bfs_num][1]][bfs[bfs_num][2]+1]=='E'))&&(sum[bfs[bfs_num][0]][bfs[bfs_num][1]][bfs[bfs_num][2]+1]==0))
{
l++;
bfs[l][0]=bfs[bfs_num][0];
bfs[l][1]=bfs[bfs_num][1];
bfs[l][2]=bfs[bfs_num][2]+1;
sum[bfs[l][0]][bfs[l][1]][bfs[l][2]]=sum[bfs[bfs_num][0]][bfs[bfs_num][1]][bfs[bfs_num][2]]+1;
if((bfs[l][0]==ei)&&(bfs[l][1]==ej)&&(bfs[l][2]==ek))
{
ok=1;break;
}
}
}
else if((i==5)&&(bfs[bfs_num][2]-1>=0))
{
if(((data[bfs[bfs_num][0]][bfs[bfs_num][1]][bfs[bfs_num][2]-1]=='.')||(data[bfs[bfs_num][0]][bfs[bfs_num][1]][bfs[bfs_num][2]-1]=='E'))&&(sum[bfs[bfs_num][0]][bfs[bfs_num][1]][bfs[bfs_num][2]-1]==0))
{
l++;
bfs[l][0]=bfs[bfs_num][0];
bfs[l][1]=bfs[bfs_num][1];
bfs[l][2]=bfs[bfs_num][2]-1;
sum[bfs[l][0]][bfs[l][1]][bfs[l][2]]=sum[bfs[bfs_num][0]][bfs[bfs_num][1]][bfs[bfs_num][2]]+1;
if((bfs[l][0]==ei)&&(bfs[l][1]==ej)&&(bfs[l][2]==ek))
{
ok=1;break;
}
}
}
}
if(ok==1)
{
printf("Escaped in %d minute(s).\n",sum[bfs[l][0]][bfs[l][1]][bfs[l][2]]);break;
}
bfs_num++;
}
if(ok==0)
printf("Trapped!\n");
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator