Cod sursa(job #920003)

Utilizator muscaTudose Vlad-Adrian musca Data 19 martie 2013 22:51:02
Problema Teren Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <cstdio>
using namespace std;
int n,m,i,j,x;
int a[311][311],s[311][311];
int st,ii,sm,sm1,sol;
int main()
{
    freopen("teren.in","r",stdin);
    freopen("teren.out","w",stdout);
    scanf("%d%d%d",&n,&m,&x);
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
            scanf("%d",&a[i][j]);
            s[i][j]=s[i-1][j]+a[i][j];
        }
    for(i=1;i<=n;i++)
        for(ii=i;ii<=n;ii++)
        {
            st=0; sm=0; sm1=0;
            for(j=1;j<=m;j++)
            {
                sm=sm+s[ii][j]-s[i-1][j];
                while(sm-sm1>x)
                {
                    sm1+=s[ii][++st];
                    sm1-=s[i-1][st];
                }
                if(sol<(ii-i+1)*(j-st))
                    sol=(ii-i+1)*(j-st);
            }
        }
    printf("%d\n",sol);
    return 0;
}