rt,最慢的点1.14s,die码在此:
//# pragma GCC optimize("Ofast,no-stack-protector")
//
//# pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
# include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair <int, int> pii;
typedef int arr[1005][1005];
int n, m, t, maxx;
arr l, r, L, R, u;
char a[1005][1005];
int main () {
ios::sync_with_stdio (0);
cin.tie (0);
cout.tie (0);
cin >> n >> m;
for (int i = 1; i <= n; ++ i) {
for (int j = 1; j <= m; ++ j) {
cin >> a[i][j];
if (a[i][j] == 'F') {
l[i][j] = l[i][j - 1] + 1;
u[i][j] = u[i - 1][j] + 1;
if (a[i - 1][j] == 'F')
L[i][j] = min (L[i - 1][j], l[i][j]);
else
L[i][j] = l[i][j];
}
for (int j = m; j; -- j)
if (a[i][j] == 'F') {
r[i][j] = r[i][j + 1] + 1;
if (a[i - 1][j] == 'F')
R[i][j] = min (R[i - 1][j], r[i][j]);
else
R[i][j] = r[i][j];
maxx = max (maxx, (R[i][j] + L[i][j] - 1) * u[i][j]);
}
}
}
cout << 3 * maxx;
return 0;
}