Cod sursa(job #2336685)

Utilizator niculaestefan22Stefan Niculae niculaestefan22 Data 5 februarie 2019 13:57:48
Problema Teren Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("teren.in");
ofstream fout("teren.out");

const int nmax=305;
int n,m,x;
int s[nmax][nmax];

void read()
{
    fin>>n>>m>>x;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
    {
        fin>>s[i][j];
        s[i][j]+=s[i-1][j];
    }
}

void solve()
{
    int amax=0,i1,i2,sum=0,j1,j2,sumcr=0,i,j;
    for(i1=1;i1<=n;i1++)
        for(i2=i1;i2<=n;i2++)
    {
        sum=0;
        j1=1;
        for(j2=1;j2<=m;j2++)
        {
            sumcr=s[i2][j2]-s[i1-1][j2];
            sum+=sumcr;

            while(sum>x)
            {
                sumcr=s[i2][j1]-s[i1-1][j1];
                sum-=sumcr;
                j1++;

            }

        if(j1<=j2&&amax<((i2-i1+1)*(j2-j1+1)))
        {
            amax=((i2-i1+1)*(j2-j1+1));
        }
        }


    }

    fout<<amax;
}

int main()
{
    read();
    solve();
    fout.close();
    return 0;
}