Cod sursa(job #1823995)

Utilizator DobosDobos Paul Dobos Data 7 decembrie 2016 09:46:10
Problema BMatrix Scor 28
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <bits/stdc++.h>
#define NMAX 205
#define INF 1e9

using namespace std;

ifstream fin("bmatrix.in");
ofstream fout("bmatrix.out");

int S[NMAX][NMAX];

int Mmax(int n,int m,int M){
    int A = 0;
    for(int i = n; i <= m; i++){
        int l = 0,h = INF;
        for(int j = 1; j <= M; j++){
            if(S[i][j]){
                l++;
                if(S[i][j] > i - n + 1)
                    h = min(h,S[i][j] - S[n - 1][j]);
                else
                    h = min(h,S[i][j]);
                A = max(A,h * l);
            } else{
                l = 0;
                h = INF;
            }

        }
    }

    return A;

}



int main()
{
    ios :: sync_with_stdio(false);
    fin.tie(NULL);

    int n,m,sol;
    char x;

    fin >> n >> m;

    for(int i = 1; i <= n; i++){

        for(int j = 1; j <= m; j++){

            fin >> x;

            if(x == '0'){
                S[i][j] = S[i - 1][j] + 1;
            }
        }
    }

    sol = 0;

    for(int k = 1; k < n; k++){

        sol = max(sol,Mmax(1,k,m) + Mmax(k ,n,m));

    }
        fout << sol ;

    return 0;
}