杭电1240

来源:互联网 发布:js设置属性值 编辑:程序博客网 时间:2024/04/28 13:00
#include <iostream>#include <cstdio>#include <queue>#include <cstring>using namespace std;int dir[6][3]={{1,0,0},{-1,0,0},{0,1,0},{0,-1,0},{0,0,1},{0,0,-1}};char mapp[15][15][15];int flag[15][15][15];int A,B,C,D,E,F,res,N;int Flag;struct Node{    int x,y,z;    int step;}xx,yy; void Find(){    queue<Node>List;     int i;    xx.x=A;    xx.y=B;    xx.z=C;    xx.step=0;    List.push(xx);    while(!List.empty())    {        xx=List.front();        if(xx.x==D&&xx.y==E&&xx.z==F)        {        Flag=1;        res=xx.step;        return ;        }        List.pop();        yy.step=xx.step+1;        for(i=0;i<=5;i++)        {            yy.x=xx.x+dir[i][0];            yy.y=xx.y+dir[i][1];            yy.z=xx.z+dir[i][2];            if(yy.x<=N-1&&yy.y<=N-1&&yy.z<=N-1&&yy.x>=0&&yy.y>=0&&yy.z>=0&&!flag[yy.x][yy.y][yy.z]&&mapp[yy.x][yy.y][yy.z]=='O')            {                flag[yy.x][yy.y][yy.z]=1;                List.push(yy);            }        }    }}int main(){        char s[20];        int i,j,k;        while(~scanf("%s%d",s,&N))        {            Flag=0;            memset(flag,0,sizeof(flag));            getchar();            for(i=N-1;i>=0;i--)            {                for(j=N-1;j>=0;j--)                {                    for(k=0;k<N;k++)                    scanf("%c",&mapp[k][j][i]);                    getchar();                }            }            scanf("%d%d%d",&A,&B,&C);            flag[A][B][C]=1;            scanf("%d%d%d",&D,&E,&F);            scanf("%s",s);            Find();            if(Flag)            {                printf("%d %d\n",N,res);            }            else            printf("NO ROUTE\n");        }return 0;} 

0 0
原创粉丝点击