Cod sursa(job #3152674)

Utilizator SSKMFSS KMF SSKMF Data 26 septembrie 2023 10:55:41
Problema Teren Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>
using namespace std;

ifstream cin ("teren.in");
ofstream cout ("teren.out");

bool stricat[301][301];

int main ()
{
    int linii , coloane , limita;
    cin >> linii >> coloane >> limita;

    for (int linie = 1 ; linie <= linii ; linie++)
        for (int coloana = 1 ; coloana <= coloane ; coloana++)
            cin >> stricat[linie][coloana];

    int arie_maxima = 0;
    for (int linie_1 = 1 ; linie_1 <= linii ; linie_1++)
    {
        int suma[301];
        for (int indice = 1 ; indice <= coloane ; indice++)
            suma[indice] = 0;

        for (int linie_2 = linie_1 ; linie_2 <= linii ; linie_2++)
            for (int stanga = 1 , dreapta = 1 , total = 0 ; dreapta <= coloane ; dreapta++)
            {
                total += (suma[dreapta] += stricat[linie_2][dreapta]);
                while (total > limita) total -= suma[stanga++];

                arie_maxima = max(arie_maxima , (dreapta - stanga + 1) * (linie_2 - linie_1 + 1));
            }
    }

    cout << arie_maxima;
    cout.close(); cin.close();
    return 0;
}