文件详细信息
本文件的大小为 1013 字节。
#include<algorithm>
#include<cstdio>
const int maxn=1005,maxm=1005;
int n,m;
bool status[maxn][maxm];
bool read(){
int ch=getchar();
while(ch!=70&&ch!=82)ch=getchar();
return ch==70;
}
int left[maxn][maxm],right[maxn][maxm],up[maxn][maxm];
int rectangle;
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
status[i][j]=read();
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(j>1&&status[i][j-1]&&status[i][j])left[i][j]=left[i][j-1];
else left[i][j]=j;
for(int i=1;i<=n;i++)
for(int j=m;j>=1;j--)
if(j<m&&status[i][j]&&status[i][j+1])right[i][j]=right[i][j+1];
else right[i][j]=j;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++){
if(i>1&&status[i-1][j]&&status[i][j]){
left[i][j]=std::max(left[i-1][j],left[i][j]);
right[i][j]=std::min(right[i-1][j],right[i][j]);
up[i][j]=up[i-1][j]+1;
}else up[i][j]=status[i][j];
int len=right[i][j]-left[i][j]+1;
rectangle=std::max(rectangle,len*up[i][j]);
}
printf("%d",3*rectangle);
return 0;
}