Cod sursa(job #2806708)

Utilizator VladTZYVlad Tiganila VladTZY Data 22 noiembrie 2021 22:05:18
Problema Teren Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>

#define NMAX 305

using namespace std;

ifstream f("teren.in");
ofstream g("teren.out");

int n, m, maxRotten, answer;
int a[NMAX][NMAX];

int main()
{
    f >> n >> m >> maxRotten;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            f >> a[i][j];

            a[i][j] = a[i][j] + a[i - 1][j];
        }
    }

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

        for (int j = i; j <= n; j++) {
            int leftWing = 0;
            int rotten = 0;

            for (int rightWing = 1; rightWing <= m; rightWing++) {
                rotten = rotten + a[j][rightWing] - a[i - 1][rightWing];

                while (rotten > maxRotten && leftWing <= rightWing) {
                    leftWing++;
                    rotten = rotten - a[j][leftWing] + a[i - 1][leftWing];
                }

                int area = (j - i + 1) * (rightWing - leftWing);
                answer = max(answer, area);
            }
        }
    }

    g << answer << "\n";
    return 0;
}