제출 #848374

#제출 시각아이디문제언어결과실행 시간메모리
848374Darren0724Bomb (IZhO17_bomb)C++17
24 / 100
261 ms129812 KiB
#include <bits/stdc++.h>
using namespace std;
const long long INF=1e18;
const int N=2510;
int v[N][N],u[N][N],d[N][N],l[N][N],r[N][N];
int32_t main() {
    int n,m;cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            char c;cin>>c;
            v[i][j]=c-'0';
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(v[i][j]==0){
                continue;
            }
            u[i][j]=u[i-1][j]+1;
            l[i][j]=l[i][j-1]+1;
        }
    }
    for(int i=n;i>0;i--){
        for(int j=m;j>0;j--){
            if(v[i][j]==0){
                continue;
            }
            d[i][j]=d[i+1][j]+1;
            r[i][j]=r[i][j+1]+1;
        }
    }   
    int a=N,b=N;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(v[i][j]==0){
                continue;
            }
            a=min(a,r[i][j]+l[i][j]-1);
            b=min(b,u[i][j]+d[i][j]-1);
            //cout<<r[i][j]<<' '<<l[i][j]<<' '<<u[i][j]<<' '<<d[i][j]<<endl;
        }
    }
    cout<<a*b<<endl;
    
    
    
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...