Pagini recente » Cod sursa (job #610702) | Cod sursa (job #564301) | Borderou de evaluare (job #673670) | Cod sursa (job #1196262) | Cod sursa (job #1422921)
#include <fstream>
#include <bitset>
using namespace std;
ifstream fin("bmatrix.in");
ofstream fout("bmatrix.out");
bitset<201>v[201];
int tot[201][201];
int main()
{
int n,m,i,j,u,z,pas,x,y,x1,x2,x3,y1,y2,y3;
fin>>n>>m;
char ok;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
fin>>ok;
v[i][j]=ok-'0';
tot[i][j]=tot[i][j-1]+tot[i-1][j]-tot[i-1][j-1]+v[i][j];
}
}
int arie1=0,arie2=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
for(u=i;u<=n;u++)
{
for(z=j;z<=m;z++)
{
if(tot[u][z]-tot[i-1][z]-tot[u][j-1]+tot[i-1][j-1]==0)
{
pas=(u-i+1)*(z-j+1);
if(pas>arie1)
{
arie2=arie1;
arie1=pas;
x2=x,y2=y,x3=x1,y3=y1;
x=i,y=j,x1=u,y1=j;
}
else
{
if(pas>arie2)
{
if(!(i>=x2&&j>=y2&&u<=x3&&z<=y3)) arie2=pas;
}
}
}
}
}
}
}
fout<<arie1+arie2;
}