Cod sursa(job #1909629)

Utilizator ChiriGeorgeChiriluta George-Stefan ChiriGeorge Data 7 martie 2017 13:21:55
Problema BMatrix Scor 8
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <fstream>
#define NMAX 205
#include <cstring>
using namespace std;

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

int sum[NMAX][NMAX], n, m, local_sum, max_sum = -0x3f3f3f3f;
char s[NMAX];

int total_area(int i, int j);

int main()
{
    int i, j, k;
    fin >> n >> m;
    fin.get();
    for(i = 1; i <= n; i++)
    {
        fin.getline(s, 205);
        for(j = 0; j < m; j++)
            sum[i][j+1] = sum[i-1][j+1] + s[j] - '0';
    }
    for(i = 1; i < n; i++)
        for(j = 0; j < i; j++)
            for(k = i + 1; k <= n; k++)
            {
                local_sum = 0;
                local_sum += total_area(j, i);
                local_sum += total_area(i, k);
                if(local_sum > max_sum)
                    max_sum = local_sum;
            }
    fout << max_sum << '\n';
    return 0;
}

int total_area(int i, int j)
{
    int v[NMAX], k,seq = 0, max_seq = 0;
    for(k = 1; k <= m; k++)
        v[k] = sum[j][k] - sum[i][k];
    for(k = 1; k <= m; k++)
    {
        if(v[k] == 0)
            ++seq;
        else
            seq = 0;
        if(seq > max_seq)
            max_seq = seq;
    }
    return (j - i)*max_seq;
}