#include<stdio.h>
#include<string.h>
![](/Images/OutliningIndicators/None.gif)
int n, i, j, k, mxa;
bool f[2001][2001];
int r[2001][2001];
![](/Images/OutliningIndicators/None.gif)
int uu[2001][2001];
![](/Images/OutliningIndicators/None.gif)
int main()
![](/Images/OutliningIndicators/ExpandedBlockStart.gif) ![](/Images/OutliningIndicators/ContractedBlock.gif) {
while(scanf("%d",&n)==1)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
mxa=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&f[i][j]);
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) /**////
for(i=0;i<n;i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
int c=0;
for(j=n-1;j>=0;j--)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(f[i][j]==0)c++;
else
c=0;
r[i][j]=c;
}
}
memset(uu,0,sizeof(uu));
for(i=0;i<n;i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
for(j=0;j<n;j++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(i!=0 && r[i][j]<=r[i-1][j])
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(r[i][j]==r[i-1][j])
uu[i][j]=uu[i-1][j]+1;
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
uu[i][j]=2;
int ii=2;
while(i-ii >=0 && r[i][j]<=r[i-ii][j])
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(r[i][j]==r[i-ii][j])
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
uu[i][j]=ii+uu[i-ii][j];
break;
}
uu[i][j]++;
ii++;
}
}
}
else
uu[i][j]=1;
}
}
for(i=0;i<n;i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
for(j=0;j<n;j++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(mxa<r[i][j]*uu[i][j])
mxa=r[i][j]*uu[i][j];
}
}//
for(j=0;j<n;j++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
int c=0;
for(i=n-1;i>=0;i--)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(f[i][j]==0)c++;
else
c=0;
r[i][j]=c;
}
}
memset(uu,0,sizeof(uu));
for(j=n-1;j>=0;j--)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
for(i=0;i<n;i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(j!=n-1 && r[i][j]<=r[i][j+1])
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(r[i][j]==r[i][j+1])
uu[i][j]=uu[i][j+1]+1;
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
uu[i][j]=2;
int ii=2;
while(j+ii <n && r[i][j]<=r[i][j+ii])
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(r[i][j]==r[i][j+ii])
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
uu[i][j]=ii+uu[i][j+ii];
break;
}
uu[i][j]++;
ii++;
}
}
}
else
uu[i][j]=1;
}
}
for(i=0;i<n;i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
for(j=0;j<n;j++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(mxa<r[i][j]*uu[i][j])
mxa=r[i][j]*uu[i][j];
}
}//
for(i=0;i<n;i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
int c=0;
for(j=0;j<n;j++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(f[i][j]==0)c++;
else
c=0;
r[i][j]=c;
}
}
memset(uu,0,sizeof(uu));
for(j=0;j<n;j++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
for(i=n-1;i>=0;i--)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(i!=n-1 && r[i][j]<=r[i+1][j])
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(r[i][j]==r[i+1][j])
uu[i][j]=uu[i+1][j]+1;
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
uu[i][j]=2;
int ii=2;
while(i+ii <n && r[i][j]<=r[i+ii][j])
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(r[i][j]==r[i+ii][j])
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
uu[i][j]=ii+uu[i+ii][j];
break;
}
uu[i][j]++;
ii++;
}
}
}
else
uu[i][j]=1;
}
}
for(i=0;i<n;i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
for(j=0;j<n;j++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(mxa<r[i][j]*uu[i][j])
mxa=r[i][j]*uu[i][j];
}
}//
for(j=0;j<n;j++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
int c=0;
for(i=0;i<n;i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(f[i][j]==0)c++;
else
c=0;
r[i][j]=c;
}
}
memset(uu,0,sizeof(uu));
for(i=0;i<n;i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
for(j=0;j<n;j++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(j!=0 && r[i][j]<=r[i][j-1])
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(r[i][j]==r[i][j-1])
uu[i][j]=uu[i][j-1]+1;
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
uu[i][j]=2;
int ii=2;
while(i-ii >=0 && r[i][j]<=r[i][j-ii])
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(r[i][j]==r[i][j-ii])
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
uu[i][j]=ii+uu[i][j-ii];
break;
}
uu[i][j]++;
ii++;
}
}
}
else
uu[i][j]=1;
}
}
for(i=0;i<n;i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
for(j=0;j<n;j++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif) {
if(mxa<r[i][j]*uu[i][j])
mxa=r[i][j]*uu[i][j];
}
}
![](/Images/OutliningIndicators/InBlock.gif)
printf("%d\n",mxa);
}
return 0;
}
|
|
|