记录编号 46675 评测结果 AAAAAAAAAA
题目名称 [Nescafé 20] 玉蟾宫 最终得分 100
用户昵称 GravatarTruth.Cirno 是否通过 通过
代码语言 C++ 运行时间 1.461 s
提交时间 2012-10-29 11:24:07 内存使用 7.17 MiB
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <stack>
using namespace std;

int f[1010][1010];
stack<int> sta,stapos;

int maxint(int a,int b)
{
	if (a>b)
		return(a);
	return(b);
}

int main(void)
{
	freopen("jademoon.in","r",stdin);
	freopen("jademoon.out","w",stdout);
	int i,j,n,m,tempj,maxnum=0;
	char ch;
	cin>>n>>m;
	for (i=1;i<=n;i++)
		for (j=1;j<=m;j++)
		{
			cin>>ch;
			if (ch=='F')
				f[i][j]=f[i-1][j]+1;
			else
				f[i][j]=0;
		}
	for (i=1;i<=n;i++)
		f[i][m+1]=-1;
	for (i=1;i<=n;i++)
	{
		for (j=1;j<=m+1;j++)
		{
			tempj=j;
			if (!sta.empty())
				while (sta.top()>f[i][j])
				{
					tempj=stapos.top();
					maxnum=maxint(maxnum,((j-1)-tempj+1)*sta.top()*3);
					sta.pop();
					stapos.pop();
					if (sta.empty())
						break;
				}
			sta.push(f[i][j]);
			stapos.push(tempj);
		}
		sta.pop();
		stapos.pop();
	}
	cout<<maxnum<<endl;
	return(0);
}