Pagini recente » Cod sursa (job #1268587) | Cod sursa (job #645602) | Cod sursa (job #2204654) | Cod sursa (job #1193665) | Cod sursa (job #1219164)
#include <cstdio>
#define MAXN 300
int D[MAXN][MAXN];
int main () {
FILE *f, *g;
f = fopen( "teren.in", "r" );
g = fopen("teren.out", "w");
int n, m, x;
fscanf(f, "%d%d%d", &n, &m, &x);
for (int i = 0 ; i < n ; ++i)
for (int j = 0 ; j < m ; ++j)
fscanf(f, "%d", &D[i][j]);
for(int j = 0 ; j < m ; ++j)
for(int i = 1 ; i < n ; ++i)
D[i][j] += D[i-1][j];
int maxar = -1;
for(int b = 0 ; b < n ; ++b)
for(int h = 1 ; b - h + 1 >= 0 ; ++h) {
int s = 0, start = 0;
for( int c = 0 ; c < m ; ++c ) {
s += D[b][c];
if( b - h + 1 > 0 )
s -= D[b - h][c];
while( s > x ) {
int k = D[b][start];
if( b - h + 1 > 0 )
k -= D[b - h][start];
++start;
s -= k;
}
if( start <= c && maxar < ( c - start + 1 ) * h )
maxar = ( c - start + 1 ) * h;
}
}
fprintf(g, "%d\n", maxar);
fclose(f);
fclose(g);
return 0;
}