Cod sursa(job #414271)

Utilizator titusuTitus C titusu Data 9 martie 2010 21:35:35
Problema Teren Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
using namespace std;
#include <fstream>
#include <iostream>
unsigned short A[301][301], S[301][301],V[301];
int n,m,X;

int main(){
	ifstream fin("teren.in");
	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]=A[i][j]+S[i-1][j];
		}
	int smax=0;
	for(int i=1;i<n;++i)
		for(int j=i+1;j<=n;++j){
			for(int k=1;k<=m;++k)
				V[k]=S[j][k]-S[i-1][k];
			int st=1,dr,s=0;
			for(dr=1;dr<=m;++dr){
				s+=V[dr];
				while(s>X)
					s-=V[st++];
				if(st<=dr)
					if(smax<(j-i+1)*(dr-st+1))
						smax = (j-i+1)*(dr-st+1);
			}
		}
	ofstream fout("teren.out");
	fout<<smax<<endl;
	return 0;
}