Cod sursa(job #109332)

Utilizator IoannaPandele Ioana Ioanna Data 25 noiembrie 2007 10:16:52
Problema Teren Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 1, Clasa a 9-a Marime 0.81 kb
#include<stdio.h>
int m,n,x,t[303][303],a[303][303],v[303],s[303][303];

void read()
{
scanf("%d%d%d",&n,&m,&x);
int i,j;
for (i=1;i<=m;i++)
    {scanf("%d",&t[1][i]);
     a[1][i]=t[1][i];
     s[1][i]=s[1][i-1]+t[1][i];
     }
for (i=2;i<=n;i++)
   for (j=1;j<=m;j++)
	{scanf("%d",&t[i][j]);
	 a[i][j]=t[i][j]+a[i-1][j];
	 s[i][j]=s[i][j-1]+a[i][j];
	 }
}


void rev()
{
int amax=0,i,j,k,l,ar;
for (i=0;i<=n-1;i++)
     for (j=n;j>i;j--)
	 {
	  for (k=1;k<=m;k++)
	      v[k]=s[j][k]-s[i][k];
	  for (k=1;k<m;k++)
	      for (l=m;l>k;l--)
		  {ar=amax;
		   if (v[l]-v[k]<=x)
		     ar=(j-i)*(l-k+1);
		  if (ar>amax)
		      amax=ar;
		}
	 }
printf("%d",amax);
}

int main()
{
freopen("teren.in","r",stdin);
freopen("teren.out","w",stdout);
read();
rev();
fcloseall();
return 0;
}