Cod sursa(job #3367935)

Utilizator Cris21234123Cristian Cris21234123 Data 12 octombrie 2026 14:30:07
Problema BMatrix Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#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 >> 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 = n; i > 0; i-- )
        for ( j = m; 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 <= n; i++ )
        for ( j = 1; j <= m; 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;
}