Cod sursa(job #644566)

Utilizator dutzulBodnariuc Dan Alexandru dutzul Data 6 decembrie 2011 23:04:22
Problema Teren Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <cstdio>
using namespace std;
int a[330][330],v[400],dr,st,s,t,i,j,k,m,n,l,A,Amax;
int main()
{
    freopen("teren.in", "r", stdin);
    freopen("teren.out", "w", stdout);


    scanf("%d%d%d", &n,&m,&k);
    for(i=1; i<=n; i++)
        for(j=1; j<=m; j++)
            scanf("%d",&a[i][j]);

    for(i=1; i<=n; i++)
        for(j=1; j<=m; j++)
            a[i][j]+=a[i][j-1];




    for(i=1; i<=m; i++)
        for(j=i; j<=m; j++)
        {
            for(t=1; t<=n; t++)
                v[t]=a[t][j]-a[t][i-1];
            st=1;
            s=0;
            for(dr=1; dr<=n; dr++)
            {
                s+=v[dr];
                while (s>k&&dr>=st)
                {
                    s=s-v[st];
                    st++;
                }
                if ((j-i+1)*(dr-st+1)>A)
                    A=(j-i+1)*(dr-st+1);
            }
        }

printf("%d\n",A);
    return 0;
}