Cod sursa(job #360508)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 31 octombrie 2009 18:53:57
Problema Teren Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
# include <stdio.h>
int a[301][301],b[301],s[301][301],i,j,n,m,k,l,max,maxf,p,p2,x,sum;
int main ()
{
freopen ("teren.in","r",stdin);
freopen ("teren.out","w",stdout);
scanf ("%i%i%i",&n,&m,&x);

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

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


  for (i=1;i<=n;i++)
   for (j=i;j<=n;j++)
   {
    sum=0; max=0;
    for (k=1;k<=m;k++)
    b[k]=s[j][k]-s[i-1][k];


    k=1;
    while (b[k]==0 && k<=m )
    k++;
    if (b[k]>x)
    k--;
    p=k;
    sum=b[p];
    max=p;
    p2=k;





    
    for (k=p+1;k<=m;k++)
    {
     sum=sum+b[k];

    while (sum>x)
    {
    sum=sum-b[p];
    p++;
    }

    if (p==p2)
    l=k;
    else
    l=k-p+1;
    if (max<l)
    max=l;

    }

    l=max*(j-i+1);
    if (maxf<l)
    maxf=l;

    }

 printf ("%i",maxf);
 return 0;
 }