记录编号 46688 评测结果 AAAAAAAAAA
题目名称 [Nescafé 20] 玉蟾宫 最终得分 100
用户昵称 GravatarMakazeu 是否通过 通过
代码语言 C++ 运行时间 0.486 s
提交时间 2012-10-29 12:51:51 内存使用 3.79 MiB
显示代码纯文本
#include <cstdlib>
#include <cstdio>
#include <stack>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN=1011;
int N,M,Num[MAXN][MAXN]={0};
stack<int> sta,wei; int w,h;
inline void init()
{
	scanf("%d %d\n",&N,&M); char c;
	for(int i=1;i<=N;i++)
	{
		for(int j=1;j<=M;j++)
		{
			c=0;while(c!='F'&&c!='R') scanf("%c",&c);
			if(c=='F') Num[i][j]=Num[i-1][j]+1;
		}
	}
}

inline void Stack()
{
	int ans=0;
	sta.push(-1);wei.push(0);
	for(int i=1;i<=N;i++)
	{
		for(int j=1;j<=M;j++)
		{
			w=0,h=Num[i][j];
			while(h<sta.top())
			{
				w+=wei.top();
				if(w*sta.top()>ans) ans=w*sta.top();
				sta.pop(); wei.pop();
			}
			sta.push(h);wei.push(w+1);
		} w=0;
		while(sta.size()>1)
		{
			w+=wei.top();
			if(sta.top()*w>ans) ans=sta.top()*w;
			sta.pop(); wei.pop();
		}
	}
	printf("%d\n",ans*3);
}

int main()
{
	freopen("jademoon.in","r",stdin);
	freopen("jademoon.out","w",stdout);
	init();Stack();
	return 0;
}