Submission #833577

#TimeUsernameProblemLanguageResultExecution timeMemory
833577vjudge1Bomb (IZhO17_bomb)C++17
13 / 100
5 ms484 KiB
#include<bits/stdc++.h> using namespace std; #define endl '\n' #define ll long long int n, m; char g[2505][2505]; char a[2505][2505]; char v[2505][2505]; void cpy(){ for(int i=1; i<=n; i++){ for(int j=1; j<=m; j++){ a[i][j] = g[i][j]; v[i][j] = 0; } } } bool val(int x, int y, int h, int w){ for(int i=x; i<=min(x+h-1, n); i++){ for(int j=y; j<=min(y+w-1, m); j++){ if(a[i][j] == '0') return false; } } return true; } void fil(int x, int y, int h, int w){ for(int i=x; i<=min(x+h-1, n); i++){ for(int j=y; j<=min(y+w-1, m); j++){ a[i][j] = '0'; } } } bool chk(int h, int w){ for(int i=1; i<=n; i++){ for(int j=1; j<=m; j++){ if(a[i][j] == '1'){ v[i][j] = val(i, j, h, w); } } } for(int i=1; i<=n; i++){ for(int j=1; j<=m; j++){ if(v[i][j]){ fil(i, j, h, w); } } } for(int i=1; i<=n; i++){ for(int j=1; j<=m; j++){ if(a[i][j] == '1') return false; } } return true; } int main(){ ios::sync_with_stdio(0); cin.tie(0); cin>>n>>m; if(n > 20 || m > 20){ cout<<1<<endl; return 0; } for(int i=1; i<=n; i++){ for(int j=1; j<=m; j++){ cin>>g[i][j]; } } int mx = 1; for(int i=1; i<=n; i++){ for(int j=1; j<=m; j++){ cpy(); bool ok = chk(i, j); if(ok) mx = max(mx, i*j); } } cout<<mx<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...