Cod sursa(job #2854495)

Utilizator andrei9cBogdan Andrei andrei9c Data 21 februarie 2022 14:17:02
Problema Teren Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb

#include <fstream>
using namespace std;
ifstream fin("teren.in");
ofstream fout("teren.out");
int n,m,sum[1001][1001],l1,l2,st,dr,x,y,Max,j,i,s;
int main()
{
    cin>>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 pana la linia i
        }
    for(l1=1; l1<=n; l1++)  ///linia de sus
        for(l2=1; l2<=n; l2++) ///linia de jos
        {
            st=1;
            s=0;
            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;
}