#include #include using namespace std; typedef pair P; static const int MAX=25; int W,H; char C[MAX][MAX]; int d[MAX][MAX]; bool used[MAX][MAX]={}; int dx[4]={-1,1,0,0}; int dy[4]={0,0,-1,1}; int ans=1000000000; void bfs1(int sx,int sy){ queue

que; que.push(P(sx,sy)); used[sx][sy]=true; while(!que.empty()){ P p=que.front(); que.pop(); for(int i=0;i<4;i++){ int nx=p.first+dx[i]; int ny=p.second+dy[i]; if(nx>=0&&nx=0&&ny que; for(int i=0;i=0&&nx=0&&ny=0&&nx=0&&ny> W >> H; int sx,sy; for(int i=0;i> C[i][j]; if(C[i][j]=='.'){ sx=i,sy=j; } } } bfs1(sx,sy); bfs2(); cout << ans << endl; }