Pagini recente » Cod sursa (job #2519711) | Cod sursa (job #424309) | Cod sursa (job #283132) | Cod sursa (job #1776696) | Cod sursa (job #324795)
Cod sursa(job #324795)
#include <stdio.h>
#define Nmax 305
int a[Nmax][Nmax]; // terenul
long s[Nmax][Nmax],v[Nmax]; // s[i][j] pe col j si lin<=i sunt x de 1
int n,m,i,j,st,dr,k;
long amax,x,mlg,sum;
int main(){
freopen("teren.in","r",stdin);
freopen("teren.out","w",stdout);
scanf("%ld%ld%ld",&n,&m,&x);
for(i=1;i<=n;++i)
for(j=1;j<=m;++j) scanf("%d",&a[i][j]);
for(i=1;i<=n;++i)
for(j=1;j<=m;++j) s[i][j]= s[i-1][j]+a[i][j];
for(i=1;i<=n;++i)
for(j=i;j<=n;++j){
for(k=1;k<=m;++k) v[k] = s[j][k] -s[i-1][k];
st=1; dr=0; sum=0; mlg=0;
while(dr<m){
sum += v[++dr];
while(sum > x && st<=m)
sum -= v[st++];
if(st<=dr && dr-st+1 > mlg) mlg=dr-st+1;
}
if( (j-i+1)*mlg > amax) amax= (j-i+1)*mlg;
}
printf("%ld\n",amax);
fclose(stdin); fclose(stdout);
return 0;
}