Submission #1131134

#TimeUsernameProblemLanguageResultExecution timeMemory
1131134MuhammetBomb (IZhO17_bomb)C++17
22 / 100
1097 ms12652 KiB
#include <bits/stdc++.h>

using namespace std;

const int N = 2505;

int n, m;

char c[N][N], c1[N][N];

bool f(int a, int b){
    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= m; j++){
            c1[i][j] = c[i][j];
        }
    }
    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= m; j++){
            bool tr = 0;
            if(i + a - 1 <= n and j + b - 1 <= m){
                for(int i1 = i; i1 <= i+a-1; i1++){
                    for(int j1 = j; j1 <= j+b-1; j1++){
                        if(c[i1][j1] == '0'){
                            tr = 1;
                            break;
                        }
                    }
                }
                if(tr == 0){
                    for(int i1 = i; i1 <= i+a-1; i1++){
                        for(int j1 = j; j1 <= j+b-1; j1++){
                            c1[i1][j1] = '0';
                        }
                    }
                }
            }
        }
    }
    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= m; j++){
            if(c1[i][j] == '1') return false;
        }
    }
    return true;
}

int main(){
    cin >> n >> m;
    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= m; j++){
            cin >> c[i][j];
        }
    }
    int ans = 0;
    for(int a = 1; a <= n; a++){
        for(int b = 1; b <= m; b++){
            if(f(a,b) == true) ans = max(a*b, ans);
        }
    }
    cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...