Cod sursa(job #418203)

Utilizator lupsanraresLupsan Rares Simion lupsanrares Data 15 martie 2010 17:19:05
Problema Teren Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <fstream>
using namespace std;
short a[301][301],s[301][301];
int v[301];
int main ()
{
	int n,m,x;
	ifstream fin ("teren.in");
	ofstream fout("teren.out");
	fin >>n>>m>>x;
	for(int i=1;i<=n;++i)
		for(int j=1;j<=m;++j)
		{
			fin>>a[i][j];
			s[i][j] = s[i-1][j] + a[i][j];
		}
	int ariemax=0;
	for(int i=1;i<=n;++i)
		for(int j=i;j<=n;++j)
		{
			for(int k=1;k<=m;++k)
				v[k]=s[j][k]-s[i-1][k];
			
			int dr,st=1,suma=0;
			for(dr=1;dr<=m;++dr){
				suma += v[dr];
				while(suma>x)
					suma -= v[st++];
				if( (j-i+1)*(dr-st+1)>ariemax )
				{
					ariemax = (j-i+1)*(dr-st+1);
				}
			}
		}
	fout<<ariemax<<endl;
	fin.close();
	fout.close();
	return 0;
}