求问大佬哪里错了,一点运行就爆

P1746 离开中山路

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++大数组必须开在外面


|