#include<bits/stdc++.h>
using namespace std;
const int N = 110;
int w[N][N];
int sum[N][N];
int n, m;
int main() {
int k;
cin >> n >> m >> k;
for (int i = 1; i <= n; i++) {
string s;
cin >> s;
for (int j = 1; j <= m; j++) {
w[i][j] = s[j - 1] - '0';
sum[i][j] = sum[i][j - 1] + w[i][j];
}
}
int ans = 0;
for (int i = 1; i <= m; i++) {
for (int j = i; j <= m; j++) {
vector<int> num;
int now = 0;
for (int l = 1; l <= n; l++) {
int tmp = sum[l][j] - sum[l][i - 1];
now += tmp;
num.push_back(now);
if (now >= k) {
if (ans == 0)ans = (j - i + 1) * l;
else ans = min(ans, (j - i + 1) * l);
int L = 1, R = l;
while (L < R) {
int mid = L + R + 1 >> 1;
if (now - num[mid - 1] >= k) L = mid;
else R = mid - 1;
}
if (now - num[L - 1] >= k) {
if (ans == 0)ans = (j - i + 1) * (l - L);
else ans = min(ans, (j - i + 1) * (l - L));
}
}
}
}
}
cout << ans << "\n";
}
P10719[GESP202406 五级] 黑白格
最新推荐文章于 2024-10-05 12:07:50 发布