Cod sursa(job #2854481)

Utilizator dumbravadianaDiana Olivia Dumbrava dumbravadiana Data 21 februarie 2022 14:09:05
Problema Teren Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("teren.in");
ofstream fout ("teren.out");
int n, m, x, sum[303][303], i, j, y, l1, l2, st, dr, s, Max;
int main()
{
    fin>>n>>m>>x;
    for (i=1; i<=n; i++)
        for (j=1; j<=m; j++)
        {
            fin>>y;
            sum[i][j]=sum[i-1][j]+y;///suma tuturor elementelor din coloana j si liniile de la 1 la i
        }
    for (l1=1; l1<=n; l1++) ///l1= linia de sus
        for (l2=l1; l2<=n; l2++)   /// l2=linia de jos
        {
            st=1;
            s=0; /// st=coloana din stanga
            for(dr=1;dr<=m;dr++)
            {
                s=s+sum[l2][dr]-sum[l1-1][dr];
                while (st<=dr && s>x)
                {
                    s=s-(sum[l2][st]-sum[l1-1][st]);
                    st++;
                }
                if ((l2-l1+1)*(dr-st+1)>Max)
                    Max=(l2-l1+1)*(dr-st+1);
            }
        }
    fout<<Max;
    return 0;
}