以LG-P4147为例
#include <bits/stdc++.h>
using namespace std;
const int N = 1010;
int n, m;
int p[N][N];
int l[N][N], r[N][N], up[N][N];
int ans;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
cin >> n >> m;
for (int i = 1; i <= n; i ++ )
for (int j = 1; j <= m; j ++ )
{
char c;
cin >> c;
if (c == 'F') p[i][j] = true;
}
for (int i = 1; i <= n; i ++ )
{
for (int j = 1; j <= m; j ++ )
if (p[i][j]) l[i][j] = l[i][j - 1] + 1;
for (int j = m; j >= 1; j -- )
if (p[i][j]) r[i][j] = r[i][j + 1] + 1;
}
for (int i = 2; i <= n; i ++ )
for (int j = 1; j <= m; j ++ )
{
if (p[i][j] && p[i - 1][j])
{
up[i][j] = up[i - 1][j] + 1;
l[i][j] = min(l[i][j], l[i - 1][j]);
r[i][j] = min(r[i][j], r[i - 1][j]);
}
ans = max(ans, (up[i][j] + 1) * (r[i][j] + l[i][j] - 1) * 3);
}
cout << ans;
}