Cod sursa(job #111436)

Utilizator devilkindSavin Tiberiu devilkind Data 29 noiembrie 2007 20:29:24
Problema Teren Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <stdio.h>
#define NMAX 333

long int n,m,k,i,j,a[NMAX][NMAX],S[NMAX][NMAX],v[NMAX],sol,x,st,sum,max;

int main()
{

        freopen("teren.in","r",stdin);
        freopen("teren.out","w",stdout);

        scanf("%ld %ld %ld",&n,&m,&k);

        for (i=1;i<=n;i++)
                for (j=1;j<=m;j++)
                        {
                        scanf("%ld",&a[i][j]);
                        S[i][j]=a[i][j]+S[i-1][j];
                        }

        sol=0;

        for (i=1;i<=n;i++)
                for (j=i+1;j<=n;j++)
                        {

                        for (x=1;x<=m;x++)
                                v[x]=S[j][x]- S[i-1][x];

                        max=0;
                        sum=0;
                        for (x=1,st=1;x<=m;x++)
                                {
                                sum+=v[x];
                                while (sum>k) sum=sum - v[st++];
                                if (x-st+1>max) max=x-st+1;
                                }
                        if (max*(j-i+1)>sol) sol=max*(j-i+1);
                        }
        printf("%ld",sol);
        return 0;
}