#include #include #include using namespace std; int a[101][101]; char c[101][101]; int n,i,m; queue< pair > q; pair punct; int ok(int i,int j,int n,int m) { if(i>=0&&i=0&&j>n>>m; for(i=0;i>c[i][j]; } int rezolva(int xi,int yi) { if(n==1 && m==1 && c[0][0]=='.') return 1; else if(c[0][0]!='.') return 0; q.push(make_pair(xi,yi)); a[xi][yi]=1; int maxi = 0; while(!q.empty()) { punct = q.front(); int px = punct.first; int py = punct.second; if(ok(px+1,py,n,m) && c[px+1][py]=='.' && a[px][py]!=0) { a[px+1][py] = a[px][py] + 1; q.push(make_pair(px+1,py)); if(a[px+1][py]>maxi) maxi=a[px+1][py]; } if(ok(px,py+1,n,m) && c[px][py+1]=='.' && a[px][py]!=0) { a[px][py+1] = a[px][py] + 1; q.push(make_pair(px,py+1)); if(a[px][py+1]>maxi) maxi = a[px][py+1]; } q.pop(); } return maxi; } int main() { citeste(n,m); int j; cout<