Pagini recente » Cod sursa (job #2404713) | Cod sursa (job #2736843) | Cod sursa (job #3182598) | Cod sursa (job #83796) | Cod sursa (job #206239)
Cod sursa(job #206239)
#include <stdio.h>
#include <math.h>
long n, m, x, i, j, v[301][301], a[301][301], def, ter, max, capst, capdr;
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("%ld", &v[i][j]);
}
}
for (i = 1; i <= m; ++i) {
for (j = 1; j <= n; ++j) {
if (v[j][i] == 1) {
a[j][i] = a[j - 1][i] + 1;
} else {
a[j][i] = a[j - 1][i];
}
}
}
for (i = 1; i <= n; ++i) {
for (j = i; j <= n; ++j) {
capst = 1;
capdr = 1;
def = a[j][1] ;
ter = j - i + 1;
while (capdr != m) {
if (def + a[j][capdr] - a[i - 1][capdr] <= x) {
++capdr;
def += (a[j][capdr] - a[i - 1][capdr]);
ter += j - i + 1;
} else {
++capst;
def -= (a[j][capst] - a[i - 1][capst]);
ter -= (j - i + 1);
}
if (max < ter && def <= x) {
max = ter;
}
}
}
}
printf("%ld\n", max);
return 0;
}