Submission #833199

#TimeUsernameProblemLanguageResultExecution timeMemory
833199vjudge1Bomb (IZhO17_bomb)C++17
24 / 100
30 ms25084 KiB
#include <bits/stdc++.h>
#define ll long long int

using namespace std;

const int MAXN = 2500 + 10;
const int INF = INT_MAX;
const long long LINF = LLONG_MAX;
const int MOD = 1e9 + 7;
const int MOD2 = 998244353;

int a[MAXN][MAXN];
ll row[MAXN], column[MAXN];

void solv(){
    ll n, m;
    cin >> n >> m;
    for(int i = 0; i < n; i++){
        string s;
        cin >> s;
        for(int j = 0; j < m; j++){
            a[i][j] = (s[j] == '1' ? 1 : 0);
            // a[i][j] = 1;
            // cerr << a[i][j];
        }
        // cerr << endl;
    }

    ll mxrow = INF, mxcolumn = INF;
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            if(a[i][j] == 1){
                row[i]++;
                column[j]++;
            }else{
                if(row[i] != 0)mxrow = min(mxrow, row[i]);
                if(column[j] != 0)mxcolumn = min(mxcolumn, column[j]);
                row[i] = 0;
                column[j] = 0;
            }
        }
        if(row[i] != 0)mxrow = min(mxrow, row[i]);
    }

    for(int i = 0; i < m; i++){
        if(column[i] != 0){
            mxcolumn = min(mxcolumn, column[i]);
        }
    }

    if(mxrow == INF && mxcolumn == INF){
        cout << n*m << endl;
        return;
    }
    ll ans = mxrow * mxcolumn;
    cout << ans << endl;
    
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int tc = 1;
//    cin >> tc;
    while(tc--)solv();
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...