Cod sursa(job #498642)

Utilizator gramatovici_paulGramatovici Paul gramatovici_paul Data 5 noiembrie 2010 18:01:24
Problema Teren Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<stdio.h>
#include<fstream>
using namespace std;
ifstream in("teren.in") ;
ofstream out("teren.out");
short int s[301][301],a[301][301],sum;
int main()
{
	int max;
//	freopen("teren.in","r",stdin);
//	freopen("teren.out","w",stdout);
	//scanf("%d%d%d",&n,&m,&x);
	int n,m,x,i,j,i1,i2,j1,j2;
	in>>n>>m>>x;
	for(i=1;i<=n;++i)
		for(j=1;j<=m;++j)
		{
			//scanf("%d",&a[i][j]);
			in>>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);
	out<<max;
	return 0;
}