#B3818. [语言月赛 202308] 电脑中了满屏粉兔病毒

[语言月赛 202308] 电脑中了满屏粉兔病毒

题目描述

小 F 的电脑屏幕可以被划分为 rrcc 列的网格,第 ii 行第 jj 列的网格,可以用 (i,j)(i,j) 来表示。

突然,有一天,小 F 的电脑中了「满屏粉兔」病毒,在电脑屏幕上,出现了 NN 只雄粉兔和 MM 只雌粉兔。

假设一只粉兔位于 (i,j)(i,j),若其沿上、下、左、右四个方向中的一个方向行动,可以在不经过「异性粉兔」的情况下离开屏幕范围,那么,这个方向对于该粉兔就是一条「逃跑通道」。

狡兔三窟。我们定义一只粉兔是「合格的粉兔」,当且仅当其至少有三条「逃跑通道」。

例如,如图所示,绿色方格代表雄粉兔,粉色方格代表雌粉兔。位于 (2,2)(2,2) 的雌粉兔,向上、下、左,都可以不经过雄粉兔的离开屏幕,共有三条「逃跑通道」因此,位于 (2,2)(2,2) 的粉兔是「合格的粉兔」。而位于 (4,4)(4,4) 的粉兔,仅有左、右两条「逃跑通道」,因此 (4,4)(4,4) 的粉兔不是「合格的粉兔」。

现在,给出屏幕上粉兔的分布情况,请问,一共有多少只「合格的粉兔」?

输入格式

输入共 r+1r+1 行。

输入的第一行为四个整数 r,c,N,Mr,c,N,M

接下来 rr 行,每行 cc 个字符,第 ii 行第 jj 个字符 ki,jk_{i,j} 描述了网格 (i,j)(i,j) 的情况:

  • ki,jk_{i,j}.,则代表 (i,j)(i,j) 没有粉兔。
  • ki,jk_{i,j}F,则代表 (i,j)(i,j) 为雌粉兔。
  • ki,jk_{i,j}M,则代表 (i,j)(i,j) 为雄粉兔。

输出格式

输出一行一个整数,代表「合格的粉兔」的只数。

6 5 2 3
.....
.F.M.
.....
.F.F.
...M.
.....
3

提示

  • 对于 30%30\% 的测试数据,1r,c301 \le r,c \le 30
  • 对于 100%100\% 的测试数据,1r,c5001 \le r,c \le 5000N,Mrc0 \le N,M \le r \cdot cki,jk_{i,j}.FM 中的一个。