Cod sursa(job #499276)

Utilizator mattapoMatei Apolzan mattapo Data 9 noiembrie 2010 14:50:13
Problema Teren Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<stdio.h>
int v[301][301],sp[301][301];
int main ()
{
	int n,m,x,i,j,st,dr,s,max;
	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",&v[i][j]);
			sp[i][j]=sp[i][j-1]+v[i][j];
		}
	for (st=1;st<=m;st++)
		for (dr=st;dr<=m;dr++)
		{
			s=0;
			j=0;
			for (i=1;i<=m;i++)
			{
				while (j<=n && s<=x)
				{
					j++;
					s+=sp[j][dr]-sp[j][st-1];
				}
				if ((j-i)*(dr-st+1)>max)
					max=(j-i)*(dr-st+1);
				s-=sp[i][dr]-sp[i][st-1];
			}
		}
	printf("%d",max);
	return 0;
}