Cod sursa(job #2065773)

Utilizator qThunderStefan Durlanescu qThunder Data 14 noiembrie 2017 10:27:54
Problema Teren Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("sotron.in");
ofstream fout("sotron.out");
int a[302][302],n,i,j,maxim,x,m,s,y,st;
int main()
{
    int i1=0;
    int i2=0;
    fin>>n>>m>>x;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            fin>>a[i][j];
            a[i][j]+=a[i-1][j];
        }
    }
    for(i1=1;i1<=n;i1++)
    {
        for(i2=i1;i2<=n;i2++)
        {
            s=0;
            st=1;
            for(j=1;j<=m;j++)
            {
                y=a[i2][j]-a[i1-1][j];

                while(s+y>x&&st<j)
                {
                    s=s-a[i2][st]+a[i1-1][st];
                    st++;
                }

                if(s+y<=x)
                {
                    s+=y;
                    maxim=max(maxim,(i2-i1+1)*(j-st+1));
                }
                else
                {
                    s=y;
                    st=j;
                }

            }
        }
    }
    fout<<maxim;
    return 0;
}