Submission #93570

#TimeUsernameProblemLanguageResultExecution timeMemory
93570TurysbekBomb (IZhO17_bomb)C++14
24 / 100
18 ms760 KiB
// In the Name of God

#include <bits/stdc++.h>

using namespace std;

#define	ll long long
#define ull unsigned long long
#define ld long double
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define sz(a) int(a.size())
#define all(v) v.begin(), v.end()
#define bpc(v) __builtin_popcountll(v)
#define itr iterator
#define rep(i, a, b) for (int i = a; i <= b; ++i)
#define per(i, a, b) for (int i = a; i >= b; --i)
#define ub upper_bound
#define lb lower_bound

const int N = 25e2 + 5;
const int mod = 1e8 + 7;
const int inf = 1e9 + 1;
const double eps = 1e-15;
const int pw = 257;

int n, m, last[N], cnt, x, y;
string s;

int main() {
	#ifdef Madi
	freopen(".in", "r", stdin);
	freopen(".out", "w", stdout);
	#endif

	ios_base :: sync_with_stdio(false); cin.tie(NULL);

	cin >> n >> m;
	x = m, y = n;
	rep(i, 1, n) {
        cin >> s;
        cnt = 0;
        rep(j, 0, m - 1) {
            if (s[j] == '0') {
                if (cnt)
                    x = min(x, cnt);
                cnt = 0;
                if (last[j] != i - 1)
                    y = min(y, i - last[j] - 1);
                last[j] = i;
            }
            else
                ++cnt;
        }
        if (cnt)
            x = min(x, cnt);
	}
	rep(j, 0, m - 1)
        if (last[j] != n)
            y = min(y, n + 1 - last[j] - 1);

	cout << x * y;

	#ifdef Madi
    cerr << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
    #endif
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...