Pagini recente » Cod sursa (job #2069441) | Cod sursa (job #1566961) | Monitorul de evaluare | Istoria paginii runda/simoni-11-12 | Cod sursa (job #2799476)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bmatrix.in");
ofstream fout("bmatrix.out");
int i,j,k,n,m,h,rez,arie;
int d[205],sus[205],jos[205],s[205],v[205],a[205][205];
char ch;
int main()
{
fin>>n>>m;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
{
fin>>ch;
a[i][j]=ch-'0';
}
for(i=1; i<=n; i++)
{
for(j=1; j<=m; j++)
{
if(!a[i][j]) v[j]++;
else v[j]=0;
arie=0;
h=40005;
for(k=j; k>=1; k--)
{
h=min(h,v[k]);
arie=max(arie,h*(j-k+1));
}
sus[i]=max(max(sus[i-1],arie),sus[i]);
s[j]=max(max(s[j-1],arie),s[j]);
}
}
memset(v,0,sizeof(v));
for(i=n; i>=1; i--)
{
for(j=m; j>=1; j--)
{
if(!a[i][j]) v[j]++;
else v[j]=0;
arie=0;
h=40005;
for(k=j; k<=m; k++)
{
h=min(h,v[k]);
arie=max(arie,h*(k-j+1));
}
jos[i]=max(max(jos[i+1],arie),jos[i]);
d[j]=max(max(d[j+1],arie),d[j]);
}
}
for(i=1; i<n; i++)
rez=max(rez,sus[i]+jos[i+1]);
for(i=1; i<m; i++)
rez=max(rez,s[i]+d[i+1]);
fout<<rez;
return 0;
}