Cod sursa(job #275467)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 10 martie 2009 14:41:57
Problema Teren Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
//#include<algorithm>
#include<stdio.h>
#define DIM 301
//using namespace std;
short n,m,a[DIM][DIM],sol[DIM][DIM];
int x;
void solve(){
    short i,j,k,l,max;
    scanf("%hd%hd%d",&n,&m,&x);
    for(i=1; i<=n; ++i)
        for(j=1; j<=m; ++j){
            scanf("%hd",&a[i][j]);
            a[i][j]+=a[i][j-1];}
	for(i=1; i<=m; sol[1][i]=a[1][i],++i);
    for(i=2; i<=n; ++i)
		for(j=1; j<=m; ++j)
            sol[i][j]=sol[i-1][j]+a[i][j];
    for(i=max=0; i<n; ++i)
        for(j=0; j<m; ++j)
            for(k=i+1; k<=n; ++k)
                for(l=j+1; l<=m; ++l)
					if(sol[k][l]-sol[i][j]<=x&&(k-i)*(l-j)>max)
						max=(k-i)*(l-j);
    printf("%hd",max);}
int main(){
    freopen("teren.in","r",stdin);
    freopen("teren.out","w",stdout);
    solve();
    return 0;}