Cod sursa(job #2808988)

Utilizator mihaistamatescuMihai Stamatescu mihaistamatescu Data 25 noiembrie 2021 19:22:59
Problema Teren Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>

using namespace std;
int a[310][310], S[310][310];
int n, m, x, suma, maxim, p;

int main() {
    ifstream fin("teren.in");
    ofstream fout("teren.out");
    fin >> n >> m >> x;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            fin >> a[i][j];
            S[i][j] = S[i - 1][j] + a[i][j];
        }
    }
    for (int i1 = 1; i1 <= n; i1++) {
        for (int i2 = i1; i2 <= n; i2++) {
            suma = 0;
            p = 1;
            for (int j = 1; j <= m; j++) {
                suma += (S[i2][j] - S[i1 - 1][j]);
                while (suma > x) {
                    suma -= (S[i2][p] - S[i1 - 1][p]);
                    p++;
                }
                if ((j - p + 1) * (i2 - i1 + 1) > maxim) {
                    maxim = (j - p + 1) * (i2 - i1 + 1);
                }
            }
        }
    }
    fout << maxim;
    return 0;
}