杭电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
- 杭电1240
- 杭电oj 1240 Asteroids!
- 杭电
- 杭电
- 杭电
- 杭电 1234 和 杭电 2115
- 杭电2056之Rectangles 杭电
- 杭电ACM1061Rightmost Digit
- 杭电2099 7.11
- 杭电ACM 1003
- 杭电 ACM 2016
- 杭电ACM1466
- 杭电ACM1003
- 杭电ACM1225
- 杭电ACM2023
- 杭电ACM2602
- 杭电ACM2955
- 杭电ACM3198
- jQuery获取 radio 选中后的文字 ,获取
- JVM(Java虚拟机)优化大全和案例实战
- Android之路的起点!
- 深入浅出ES6(七):箭头函数 Arrow Functions
- Path Sum-二叉树相加之和
- 杭电1240
- linux错误解决:CAN’T EXEC “LOCALE”: NO SUCH FILE OR DIRECTORY AT /USR/SHARE/PERL5/DEBCONF/ENCODING.PM
- jQuery 获取标签在table 中的行和列
- ubuntu运行Faster R-CNN
- IOS消息推送APNs
- Java核心知识点-ClassLoader详解
- Android中Parcelable接口用法
- 利用广播接收者对拨出去的电话添加17951
- Xcode中拖入资源弹出的窗口