OpenJudge2753走迷宫WA了

请问OpenJudge2.5的2753为什么wa了

#include<bits/stdc++.h>
using namespace std;
int zx,zy;
map<int,map<int,bool> >map1;//map1[x][y]
map<int,map<int,bool> >map2;//1走过 
int bs=1600;
void dfs(int lbs,int x,int y){

    map2[x][y]=1;
    if((x==zx)&&(y==zy)){bs=lbs;return;}
    if(lbs>=bs)return;
    if((map1[x+1][y])&&(!map2[x+1][y])){dfs(lbs+1,x+1,y);}
    else if((map1[x-1][y])&&(!map2[x-1][y])){dfs(lbs+1,x-1,y);}
    else if((map1[x][y+1])&&(!map2[x][y+1])){dfs(lbs+1,x,y+1);}
    else if((map1[x][y-1])&&(!map2[x][y-1])){dfs(lbs+1,x,y-1);}
    map2[x][y]=0;
}
int main(){
    char c;
    cin>>zx>>zy;
    for(int i=1;i<=zy;i++){
        for(int j=1;j<=zx;j++){
            cin>>c;
            map1[j][i]=(c=='.')?1:0;//1可走
        }}
        dfs(0,1,1);
        cout<<bs;
    return 0;
}