求助奆佬... RE 0分

P1746 离开中山路

czyczyczyczyczy @ 2018-07-24 20:09:17

求帮助...

#include <bits/stdc++.h>
using namespace std;
int mapp[1010][1010],X1,Y1,X2,Y2,q[1010][5],ans;
int xx[4]={1,-1,0,0},yy[4]={0,0,-1,1},n;
bool vis[1010][1010];
void bfs(int s,int e)
{
    int head=0,tail=1;
    bool flag=false;
    q[tail][1]=s;q[tail][2]=e;
    do
    {
        head++;
        if(flag)
        {
            ans++;
            flag=false; 
        } 
        for(int i = 0;i < 4;i++)
        {
            int x=q[head][1]+xx[i],y=q[head][2]+yy[i];
            if(vis[x][y] == false && mapp[x][y] == 0 && x >= 1 && x <= n && y >= 1 && y <= n)
            {
                vis[x][y]=true;
                q[++tail][1]=x;q[tail][2]=y;
                flag=true;
            }
            if(x == X2 && y == Y2)
            {
                ans++;
                return;
            }
        }
    }while(head<tail);
}
int main()
{
    cin>>n;
    getchar();
    for(int i = 1;i <= n;i++)
    {
            for(int j = 1;j <= n;j++)
            {
                char ch;
                ch=getchar();
                if(ch=='1')
                    mapp[i][j]=1;
                if(ch=='0')
                    mapp[i][j]=0;
            }
            getchar();
    }
    cin>>X1>>Y1>>X2>>Y2;
    bfs(X1,Y1);
    cout<<ans;
    return 0;   
} 

|