Cod sursa(job #498637)

Utilizator gramatovici_paulGramatovici Paul gramatovici_paul Data 5 noiembrie 2010 17:55:12
Problema Teren Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<stdio.h>
int n,m,x,i,j,i1,i2,j1,j2,s[301][301],a[301][301],sum,max;
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][j-1]+a[i][j];
		}
	for(j1=0;j1<=m;++j1)
		for(j2=1+j1;j2<=m;++j2)
		{
			sum=0;i2=0;
			for(i1=1;i1<=n;++i1)
			{
				while(i2<=n && sum<=x)
				{
					++i2;
					sum+=s[i2][j2]-s[i2][j1];
				}
				if (max<(j1-j2)*(i1-i2))
					max=(j1-j2)*(i1-i2);
				sum-=s[i1][j2]-s[i1][j1];
			}
		}
	printf("%d",max);
	return 0;
}