Cod sursa(job #1823981)

Utilizator DobosDobos Paul Dobos Data 7 decembrie 2016 08:55:33
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.23 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])
                h = min(h,S[i][j] - S[i - n + 1 ][j]);
            } else{
                l = 0;
                h = INF;
            }
            A = max(A,h * l);
        }
    }

    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;
            }
        }
    //    fin >> x;
    }

    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= m; j++)
            fout << S[i][j] << " ";
        fout << "\n";
    }

    sol = 0;

    for(int k = 1; k < n; k++){
        sol = max(sol,Mmax(1,k,m) + Mmax(k + 1,n,m));

    }
        fout << sol ;

    return 0;
}