Ellen @ 2018-07-15 20:48:22
using namespace std;
int n,s1,s2,t1,t2;
int used[1001][1001];
int dx[4]={0,0,-1,+1},dy[4]={-1,+1,0,0};
struct point{
int x,y,step;
};
int main(){
scanf("%d",&n);
char c;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++) {
cin>>c;
if(c=='1')
used[i][j]=0;
else used[i][j]=1;
}
scanf("%d %d %d %d",&s1,&s2,&t1,&t2);
point q[1000001],u,v;
int head=1,tail=1;
q[head].x=s1,q[head].y=s2,q[head].step=0;
used[s1][s2]=1;
while(head<=tail){
u=q[head];
for(int i=0;i<=3;i++){
v.x=u.x+dx[i],v.y=u.y+dy[i],v.step=u.step+1;
if(v.x>n||v.x<1||v.y>n||v.y<1||used[v.x][v.y]==1) continue;
if(v.x==t1&&v.y==t2){
printf("%d",v.step);
return 0;
}
used[v.x][v.y]=1;
tail++;
q[tail]=v;
}
head++;
}
return 0;
} ```
by 引领天下 @ 2018-07-15 20:50:19
@Ellen 请问爆什么?内存还是时间?
by Prurite @ 2018-07-15 21:06:08
@Ellen 怕不是爆CE
by moye到碗里来 @ 2018-07-15 21:10:05
@Ellen point q[1000001],u,v; 开外面
by Ellen @ 2018-07-16 19:43:41
@moye到碗里来 请问有什么区别吗
by Ellen @ 2018-07-16 19:44:21
@引领天下 就是无法运行,但又不爆错
by 引领天下 @ 2018-07-18 16:22:49
@Ellen 你应该听moye到碗里来的,因为C++大数组必须开在外面