Pagini recente » Cod sursa (job #2389614) | Cod sursa (job #738951) | Cod sursa (job #1509979) | Cod sursa (job #1803622) | Cod sursa (job #2037877)
#include <cstdio>
const int MAXN = 3e2;
int s[MAXN + 1][MAXN + 1];
inline int max(int a, int b) {
return a > b ? a : b;
}
int main() {
int n, m, k, x, sum, st, ans;
FILE *f = fopen("teren.in", "r");
fscanf(f, "%d%d%d", &n, &m, &k);
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= m; ++j) {
fscanf(f, "%d", &x);
s[i][j] = s[i - 1][j] + x;
}
}
fclose(f);
for (int i = 1; i <= n; ++i) {
for (int j = i; j <= n; ++j) {
sum = 0;
st = 1;
for (int dr = 1; dr <= m; ++dr) {
sum += s[j][dr] - s[i - 1][dr];
while (st <= dr && k < sum) {
sum -= s[j][st] - s[i - 1][st];
++st;
}
if (sum <= k) {
ans = max(ans, (j - i + 1) * (dr - st + 1));
}
}
}
}
f = fopen("teren.out", "w");
fprintf(f, "%d\n", ans);
fclose(f);
return 0;
}