#include <bits/stdc++.h>
// #define int long long
#define pii pair<int, int>
#define x first
#define y second
#define MOD 998244353
#define testCases 0
using namespace std;
const int N = 200005;
void solve() {
int n, m;
cin >> n >> m;
int a[n][m];
for (int k = 0; k < n; k++) {
string s;
cin>>s;
for (int i = 0; i < s.size(); i++) {
char c = s[i];
a[k][i] = c - '0';
}
}
int mn_x = INT_MAX, curr = 0;
for (int k = 0; k < n; k++) {
for (int i = 0; i < m; i++) {
if (i >= 1 && a[k][i] == a[k][i - 1] && a[k][i] == 1) {
curr++;
}
else if (a[k][i] == 0) {
if (curr != 0) {
mn_x = min(mn_x, curr);
curr = 0;
}
}
else if (a[k][i] == 1) {
curr = 1;
}
}
if (curr != 0) {
mn_x = min(mn_x, curr);
curr = 0;
}
}
int mn_y = INT_MAX;
curr = 0;
for (int i = 0; i < m; i++) {
for (int k = 0; k < n; k++) {
if (k >= 1 && a[k][i] == a[k - 1][i] && a[k][i] == 1) {
curr++;
}
else if (a[k][i] == 0) {
if (curr != 0) {
mn_y = min(mn_y, curr);
curr = 0;
}
}
else if (a[k][i] == 1) {
curr = 1;
}
}
if (curr != 0) {
mn_y = min(mn_y, curr);
curr = 0;
}
}
cout <<mn_x * mn_y << endl;
}
int32_t main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int tests = 1;
if (testCases) {
cin >> tests;
}
for (; tests--; solve());
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |