Cod sursa(job #499477)

Utilizator Teodor94Teodor Plop Teodor94 Data 9 noiembrie 2010 21:00:30
Problema Teren Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<cstdio>

const int N=303;

int n,m,max,l[N][N];

void citire()
{
	freopen("teren.in","r",stdin);
	freopen("teren.out","w",stdout);
	scanf("%d%d%d",&n,&m,&max);
	int x;
	for (int i=1;i<=n;++i)
		for (int j=1;j<=m;++j)
		{
			scanf("%d",&x);
			l[i][j]=l[i][j-1]+x;
		}
}

void afis()
{
	int ariemax=-1;
	for (int i1=1;i1<=m;++i1)
		for (int i2=i1;i2<=m;++i2)
		{
			int j=0,nr=0;
			for (int i=1;i<=m;++i)
			{
				while (j<=n && nr<=max)
				{
					++j;
					nr+=l[j][i2]-l[j][i1-1];
				}
				if ((j-i)*(i2-i1+1)>ariemax)
					ariemax=(j-i)*(i2-i1+1);
				nr-=l[i][i2]-l[i][i1-1];
			}
		}
	printf("%d\n",ariemax);
}

int main()
{
	citire();
	afis();
	return 0;
}