Code:
#include <iostream>
#include <cstring>
using namespace std;
const int N = 1010;
int n, m, k, sum0[N][N], sum1[N][N];
char a[N][N];
int main() {
scanf("%d%d%d",&n,&m,&k);
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= m; ++j) {
cin >> a[i][j];
sum0[i][j] = sum0[i - 1][j] + sum0[i][j - 1] - sum0[i - 1][j - 1] + (a[i][j] - '0' == 0);
sum1[i][j] = sum1[i - 1][j] + sum1[i][j - 1] - sum1[i - 1][j - 1] + (a[i][j] - '0' == 1);
}
}
int ans = 0x3f3f3f3f;
for (int x1 = 1; x1 <= n; ++x1) {
for (int y1 = 1; y1 <= m; ++y1) {
for (int x2 = x1; x2 <= n; ++x2) {
for (int y2 = y1; y2 <= m; ++y2) {
int cnt1 = sum1[x2][y2] - sum1[x1-1][y2] - sum1[x2][y1-1] + sum1[x1-1][y1-1];
if (cnt1 >= k)
ans = min(ans, (x2 - x1 + 1) * (y2 - y1 + 1));
}
}
}
}
printf("%d",ans);
return 0;
}