T315529 『STA - R1』战争即和平

题目背景

欧亚国与大洋国爆发了战争(欧亚国在和大洋国打仗,欧亚国一直在和大洋国打仗),欧亚国青年 $\textsf{WintersRain}$ 身先士卒投入了战斗。 不幸的是,敌方火力过猛,他不是射手,而是靶子,怎么才能保住小命呢?

题目描述

这是一个 $n \times m$ 的战场(可以看做平面直角坐标系的第一象限)。其中的一些大洋国士兵拿着火箭筒,用 `H` 表示;一些拿着弓箭,用 `G` 表示。战场上还有一些掩体,用 `Z` 表示。空地用 `*` 表示。 火箭筒:从所在行向第一行发射火箭弹,遇到掩体就飞过。飞过的方式是:在掩体前一格飞起,在掩体后一格降落。也就是说掩体的前一格和后一格是不被此火箭弹打到的。 弓箭:先向右射出一个 $3 \times 3$ 的对角线,再向左射出一个 $4 \times 4$ 的对角线,然后以此类推,**继续行进**。若碰到**边界或掩体**就停下。 以下分别为火箭筒与弓箭的发射方式图示: ![image](https://cdn.luogu.com.cn/upload/image_hosting/0mt0nvty.png) *(其中红色方格即为对应类型炮弹的**发射轨迹**)* 在初始时刻,每个士兵**同时开火**并持续发射,以及两次发射之间的间隙不存在(换句话说,每个士兵会立刻发射**无限发**子弹),且子弹速度无限。 但是士兵们可能会打到自己的队友,因此整张图的火力覆盖是在变化的,不过局势最终会稳定下来(也就是大洋国士兵不会攻击到自己的队友时)。 **如果您不理解死人子弹的射击规律:在一开始所有人同时发射子弹,然后被打死的人不再发射子弹,但它之前打出的子弹会继续打死别人。** **最后被打死的人发射的子弹不计入危险位置。** 我们称一个安全位置为“不会被子弹射中,且不是局势稳定时某一个 `H` 或 `G` 所在的位置”。特别地,`Z` 也**不**是一个安全位置。 $\textsf{WintersRain}$ 需要找到当局势稳定时的安全位置的个数,这样他的朋友,序列 $1$ 的“星之匙” $\mathrm{Sakura\_Lu}$ 就可以传送过来带着他跑路。 在战场上的 $\textsf{WintersRain}$ 无暇计算,请你帮帮他吧。

输入格式

输入共 $n+1$ 行。 第一行,两个整数 $n, m$,表示表格行数,列数。 接下来 $n$ 行,每行 $m$ 个字符,为射击表格。 (保证字符 $c \in \{\texttt *, \texttt H, \texttt G, \texttt Z\}$,或者说字符集 $\Sigma=\{\texttt *, \texttt H, \texttt G, \texttt Z\}$)

输出格式

一行,安全区域的个数。 特别地,如果没有任何安全点,请输出 `War is Peace.`。

说明/提示

**【样例解释】** 对于样例 $4$,在局面稳定时是这样的: ```plain 1111111*1* 1H1111**1Z **111HZ*** Z11H1*H*Z1 G*1***1*H1 1*1*Z*1*11 1*1***H1*1 H*H*H*G**H ``` (`1`、`H`、`G`、`Z` 指的是危险区域) **【提示】** 对于如下的几种可能的疑惑进行解释。 (`1` 指的是危险区域) **提示 #1** ```plain * * 1 * * * * * * * Z * * * H * ``` 也就是说 `H` 不会被卡住而发射不出火箭弹。 **提示 #2** ```plain * * G * * * * * * * H * * G * * ``` 对于如上的局面,在**局势稳定时**的局面如下: ```plain * * * * * * * 1 * * 1 * * G * * ``` **提示 #3** 若存在连续的掩体,火箭弹应当持续飞行: ```plain * * 1 * * * * 1 * * * * * * * * * Z * * * * Z * * * * * * * * * 1 * * * * H * * ``` 若存在如下间续的掩体,火箭弹也应持续飞行: ```plain * * 1 * * 1 * * * * 1 * * * * * * * * * * Z * * * * Z * * * * * * * * * * * * * * * Z * * Z * * * * * * * * * * * * 1 * * 1 * * * * H * * H * * ``` **【数据范围】** **本题不采用捆绑测试,Subtask 计算分数和。** | Subtask| $n$ | $m$ | 特殊性质 | 分值 | 测试点个数 | | :-: | :-: | :-: | :-: | :-: | :-: | | $1$ | $\leqslant 2$ | $\leqslant 1000$ | 无 | $10$ | $2$ | | $2$ | $\leqslant 10$ | $\leqslant 10$ | $3$ | $10$ | $2$ | | $3$ | $\leqslant 100$ | $\leqslant 100$ | $1, 3$ | $10$ | $2$ | | $4$ | $\leqslant 1000$ | $\leqslant 1000$ | $2$ | $20$ | $4$ | | $5$ | $\leqslant 1000$ | $\leqslant 1000$ | $3$ | $20$ | $4$ | | $6$ | $\leqslant 1000$ | $\leqslant 1000$ | 无 | $30$ | $6$ | 特殊性质 $1$:保证不存在弓箭手; 特殊性质 $2$:保证不存在障碍; 特殊性质 $3$:保证不会出现攻击队友的情况。但仍有可能存在打到障碍的情况。 对于 $100\%$ 的数据,满足 $1 \leqslant n, m \leqslant 1000$。 鲁迅先生曾经说过,不给大样例的出题人非蠢即坏,因此我们给出大样例,见题目附件。