Cod sursa(job #1687218)

Utilizator marioviperconstantin mario marioviper Data 12 aprilie 2016 18:45:05
Problema Teren Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
using namespace std;
ifstream fin("teren.in");
ofstream fout("teren.out");
int n,m,i,j,x,a[305][305],i1,i2,p,u,s[305][305],maxim;
int main()
{
    fin>>n>>m>>x;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            fin>>s[i][j];
            s[i][j] += (s[i-1][j] + s[i][j-1] - s[i-1][j-1]);
        }
    }
    for(i1=1;i1<=n;i1++)
    {
        for(i2=i1;i2<=n;i2++)
        {
            p=1;
            for(u=1;u<=m;u++)
            {
                while(s[i2][u]-s[i2][p-1]-s[i1-1][u]+s[i1-1][p-1]>x&&p<=u)
                {
                    p++;
                }
                if((i2-i1+1)*(u-p+1)>maxim)
                {
                    maxim=(i2-i1+1)*(u-p+1);
                }
            }
        }
    }
    fout<<maxim;
    return 0;
}