Pagini recente » Cod sursa (job #2214563) | Cod sursa (job #1670403) | Cod sursa (job #1052507) | Cod sursa (job #2779640) | Cod sursa (job #2184753)
#include <bits/stdc++.h>
using namespace std;
ifstream f("bmatrix.in");
ofstream g("bmatrix.out");
int m,n,dr[201],st[201],sus[201],jos[201],fr[201],i,j,maxim,x,y,k;char v[201][201];
int inf=INT_MAX;
int main()
{
f>>n>>m;
for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
{
f>>v[i][j];
}
}
for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
{
if (v[i][j]=='0')
{
fr[j]++;
}
else
{
fr[j]=0;
}x=inf;
y=0;
for (k=j;k>=1;k--)
{
x=min(fr[k],x);
y=max(y,x*(j-k+1));
}
st[i]=max(st[i],max(st[i-1],y));
sus[j]=max(sus[j],max(sus[j-1],y));
}
}
for (j=1;j<=m;j++)
{
fr[j]=0;
}
for (i=n;i>=1;i--)
{
for (j=m;j>=1;j--)
{
if (v[i][j]=='0')
{
fr[j]++;
}
else
{
fr[j]=0;
}
x=inf;
y=0;
for (k=j;k<=m;k++)
{
x=min(fr[k],x);
y=max(y,x*(k-j+1));
}
dr[i]=max(dr[i],max(dr[i+1],y));
jos[j]=max(jos[j],max(dr[j+1],y));
}
}
maxim=0;
for (i=1;i<n;i++)
{
maxim=max(maxim,st[i]+dr[i+1]);
}
for (j=1;j<m;j++)
{
maxim=max(maxim,sus[j]+jos[j+1]);
}
g<<maxim;
return 0;
}