Pagini recente » Cod sursa (job #3367894) | Cod sursa (job #3367893) | Cod sursa (job #3367353) | Cod sursa (job #3368247) | Cod sursa (job #3367939)
#include <fstream>
using namespace std;
ifstream fin("bmatrix.in");
ofstream fout("bmatrix.out");
bool mat[301][301];
char ch;
int jos[301][301], sus[301][301], stanga[301][301], dreapta[301][301], n, m, i, j, Max;
int main() {
fin >> m >> n;
for ( i = 1; i <= m; i++ )
for ( j = 1; j <= n; j++ ) {
fin >> ch;
mat[i][j] = ch - '0';
if ( !mat[i][j] ) {
stanga[i][j] = stanga[i][j-1] + 1;
jos[i][j] = jos[i-1][j] * ( stanga[i][j] == stanga[i-1][j] ) + 1;
}
}
for ( i = m; i > 0; i-- )
for ( j = n; j > 0; j-- )
if ( !mat[i][j] ) {
dreapta[i][j] = dreapta[i][j+1] + 1;
sus[i][j] = sus[i+1][j] * ( dreapta[i][j] == dreapta[i+1][j] ) + 1;
}
for ( i = 1; i <= m; i++ )
for ( j = 1; j <= n; j++ )
Max = max(Max, stanga[i][j-1] * jos[i][j-1] + stanga[i+1][j-1] * sus[i+1][j-1] + dreapta[i][j] * jos[i][j] + dreapta[i+1][j] * sus[i+1][j]);
fout << Max;
return 0;
}