Pagini recente » Borderou de evaluare (job #3367938) | Borderou de evaluare (job #3367939) | Borderou de evaluare (job #3368222) | Cod sursa (job #3368243) | Cod sursa (job #3367894)
#include <fstream>
using namespace std;
ifstream fin("bmatrix.in");
ofstream fout("bmatrix.out");
bool mat[1001][1001];
char ch;
int jos[1001][1001], stanga[1001][1001], n, m, i, j, Max1, Max2;
int main() {
fin >> n >> m;
for ( i = 1; i <= n; i++ )
for ( j = 1; j <= m; 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 = 1; i <= n; i++ )
for ( j = 1; j <= m; j++ )
if ( !mat[i][j] && ( i == n || mat[i+1][j] ) && ( j == m || mat[i][j+1] ) )
if ( Max1 <= stanga[i][j] * jos[i][j] ) {
Max2 = max(Max2, Max1);
Max1 = stanga[i][j] * jos[i][j];
} else if ( Max2 <= stanga[i][j] * jos[i][j] )
Max2 = stanga[i][j] * jos[i][j];
fout << Max1 + Max2;
return 0;
}