Pagini recente » Cod sursa (job #2554349) | Cod sursa (job #1229810) | Cod sursa (job #2478135) | Cod sursa (job #2577671) | Cod sursa (job #2958850)
#include <iostream>
#include <fstream>
#define MAXN 300
using namespace std;
ifstream fin("teren.in");
ofstream fout("teren.out");
int N, M, X, m[MAXN][MAXN], s[MAXN][MAXN];
int ans(int x, int y, int x1, int y1) {
return s[x1][y1] - s[x - 1][y1] - s[x1][y - 1] + s[x - 1][y - 1];
}
int main()
{
fin >> N >> M >> X;
for(int i = 1; i <= N; i++) {
for(int j = 1; j <= M; j++) {
fin >> m[i][j];
}
}
// construire sume partiale
for(int i = 1; i <= N; i++) {
for(int j = 1; j <= M; j++) {
s[i][j] = s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1] + m[i][j];
}
}
int best = 0;
for(int n = 1; n <= N; n++) {
for(int m = 1; m <= M; m++) {
for(int i = 1; i <= N - n + 1; i++) {
for(int j = 1; j <= M - m + 1; j++) {
if(ans(i, j, i + n - 1, j + m - 1) <= X) {
best = max(best, n * m);
}
}
}
}
}
fout << best;
return 0;
}