U362478 烦人的PZB
题目背景
**本题中的 PZB 系统与现实中不完全一致,请不要代入实际。**
PZB是 Punktförmige Zugbeeinflussung 的缩写。是一种定点式列车监控方案,不是实时监控列车,而是通过定点下的磁铁发挥作用。PZB 系统广泛应用于 D 国铁路中,小明也在游戏中接触了 PZB 系统,但是他并不怎么熟悉,经常被 PZB 系统紧急停车导致体验不佳,小明的记性太不好了,他想知道在一次驾驶任务中到底被紧急停车了多少次。
题目描述
**PZB 系统规则如下**
- PZB 系统具备两种限速模式和三种驾驶模式:分别是限制模式,非限制模式和 `U` 模式,`M` 模式,`O` 模式,它们分别对应了普通货运模式,重载货运模式和快速客运模式。**在限制模式下超速将会直接紧急停车**,而非限制模式下只会强制减速至限速以下,这些模式下的限速各不相同,可参考下面的表格:
| | M | U | O |
| :----------: | :----------: | :----------: | :----------: |
| 限制 | $45 \text{ km/h}$ | $45\text{ km/h}$ | $45\text{ km/h}$ |
| 非限制 | $105\text{ km/h}$ | $145\text{ km/h}$ | $165\text{ km/h}$ |
- 为了保证驾驶安全,PZB 系统配备了 $500\text{ Hz}$,$1000\text{ Hz}$ 和 $2000\text{ Hz}$ 三种磁铁,它们被放置于一个信号机下和其他的一些特定位置。当列车驶过磁铁,PZB 系统将会给出相应的减速与限速指令,**当驾驶员在规定时间内未做出相应的响应动作时,PZB 系统将会紧急停车**,同时磁铁也是切换限制模式和非限制模式的信号。具体可参考下面的规则:
1. 当经过一个黄灯信号机或绿黄灯预告信号机时,如果 $1000\text{ Hz}$ 磁铁没有激活,那么将会激活 $1000\text{ Hz}$ 磁铁,驾驶员需要按下 `PZB_acknowledge` 按钮以确认,**否则将紧急停车并自动激活**。如果 $1000\text{ Hz}$ 磁铁已经激活,则不需要任何操作,只需继续遵守当前模式规则即可。
2. 当在 $1000\text{ Hz}$ 磁铁已经激活的情况下,如果遇到了一个双黄灯预告信号,$500\text{ Hz}$ 磁铁将被激活,此时不需要按下任何确认按钮。但是通过时的**瞬时速度超出规定**时,将会紧急停车。**如果在 $1000\text{ Hz}$ 磁铁没有激活或没有进入限制模式的情况下直接激活 $500\text{ Hz}$ 磁铁,将会紧急停车。$500\text{ Hz}$ 磁铁将自动激活,**$1000\text{ Hz}$ 磁铁将会被覆盖。
3. 列车在通过 $2000\text{ Hz}$ 磁铁时,需要按住 `PZB_override` 按钮并按照 $500\text{ Hz}$ 磁铁限速通过该磁铁。$2000\text{ Hz}$ 磁铁存在于红色信号灯下。若未按住 `PZB_override` 按钮将会紧急停车。
4. 激活 $1000\text{ Hz}$ 磁铁或 $500\text{ Hz}$ 磁铁时会**自动进入限制模式**,但是当有磁铁处于激活状态时,限制模式不会产生任何影响。
5. 在通过一个绿灯或预告信号为绿灯后,$500\text{ Hz}$ 和 $1000\text{ Hz}$ 磁铁都会自动解除。**但限制模式不会**,需要按 `PZB_release` 按钮解除。
6. 如果在限制模式下被紧急停车,需要按照限制模式的限速通过下一个信号灯并满足解除要求时才能解除。
7. 当磁铁被绿灯自动解除但没有手动解除限制模式时,限制模式的最高限速为 $45\text{ km/h}$。
7. 如果通过绿灯后限制模式可以解除但没有解除时,超速仍会紧急停车,但是此后限制模式将**自动解除**。
8. 在激活 $1000\text{ Hz}$ 的前提下通过连续两个黄灯后,$1000\text{ Hz}$ 将可以被 `PZB_release` 解除,限制模式也将一同解除,激活该磁铁的黄灯参与计算。
9. 在刚开始任务时,限制模式默认开启,但是没有磁铁。
10. **处于磁铁控制下时,超过限速**会导致**紧急停车**,但是当磁铁和限制模式都**未激活**时,超过限速不会紧急停车,只会强制减速至限速以下。
8. 每个磁铁都有对于的限速模式,具体可见下表:
| | M | U | O |
| :----------: | :----------: | :----------: | :----------: |
| $1000\text{ Hz}$ 通过瞬时速度 | 非限制模式的最高速度 |非限制模式的最高速度 | 非限制模式的最高速度 |
| $1000\text{ Hz}$ 持续限速 | $55\text{ km/h}$ | $55\text{ km/h}$ | $85\text{ km/h}$ |
| $500\text{ Hz}$ 通过瞬时速度 | $40\text{ km/h}$ | $40\text{ km/h}$ | $65\text{ km/h}$ |
| $500\text{ Hz}$ 持续限速 | $25\text{ km/h}$ | $25\text{ km/h}$ | $20\text{ km/h}$ |
**车次规则如下**
- `RE`,`S`,`IC`,`ICE` 为不同类型的客运服务,一般使用 `O` 模式。
- `DB` 为货运,我们规定以 `DB1xxxx` 开头的为普通货运,采用 `U` 模式,以 `DB2xxxx` 开头的为重载货运,采用 `M` 模式。
现在一条线路上有 $N$ 个信号机或预告信号机,每个信号机下都有磁铁。先给出小明的车次,再给出小明通过该信号机时的相应操作,请你判断小明是否被紧急停车了,我们假定小明被紧急停车后会重新正确启动列车。**换而言之:你只需要判断通过信号机时小明的操作正不正确,不用考虑紧急停车后带来的其他意外情况。**
输入格式
共有 $T$ 组数据,第一行输入一个 $T$ 代表数据组数,接下来对于每一组数据:
第一行输入车次。
第二行输入信号机或预告信号机总个数 $N$。
第三行输入小明一开始的操作,用 `Start` 开头。
接下来 $N$ 行,每行读入信号机类型,信号,通过的瞬时速度和小明的相应操作。
`Normal` 代表这是一个普通信号机,`Next` 代表这是一个预告信号机。
`G` 代表绿灯,`GY` 代表绿黄灯,`Y` 代表黄灯,`YY` 代表双黄灯,`R` 代表红灯。
`PZB_release`,`PZB_override` 和 `PZB_acknowledge` 按钮已在上文说明。如果是 `Nope` 代表小明没有按下任何按钮。
`Speednow xkm/h` 代表通过的瞬时速度。
`Speedup xkm/h` 表示提速至 $x\text{ km/h}$,`Speeddown xkm/h` 表示减速至 $x\text{ km/h}$,`Keep` 表示速度不变。
最后一行是 `End` 代表一个任务的结束。
**需要注意的是:每组数据使用一个空行进行分隔。**
输出格式
$T$ 个数,表示被紧急停车了多少次。
如果没有紧急停车,请再隔一个空格并输出 `Perfect`。
说明/提示
### 数据 1 解释
车次为 `RE51`,是客运列车,使用 `O` 模式
一开始小明按下了 `PZB_release` 限制模式被解除,可以提速至 $145\text{ km/h}$。
`Next G Nope Speednow 145km/h Keep` 预告信号绿灯,安全,通过时不超速,保持速度,不用按下任何按钮。
`Normal G Nope Speednow 145km/h Speedup 160km/h` 绿灯通过,无需操作,瞬时速度不超速,$160\text{ km/h}$ 在限速以内。
`Normal GY Nope Speednow 160km/h Speeddown 120km/h` 通过普通绿黄灯,无需操作,瞬时速度不超速,$120\text{ km/h}$ 在限速以内。
`Next GY PZB_acknowledge Speednow 100km/h Speeddown 60km/h` 通过预告绿黄灯,按下 `PZB_acknowledge` 按钮,瞬时速度不超速,此时 $1000\text{ Hz}$ 磁铁激活,`O` 模式下限速 $85\text{ km/h}$,没有超速。
`Normal Y Nope Speednow 55km/h Keep` 通过普通黄灯,无需操作,瞬时速度没有超过 $1000\text{ Hz}$ 磁铁的限速,保持速度。
`Next YY Nope Speednow 20km/h Speeddown 15km/h` 通过预告双黄灯,$500\text{ Hz}$ 磁铁激活,无需按按钮确认,瞬时速度不超速,减速至规定限速以下无违规。
### 数据范围与约定
对于 $100\%$ 的数据:$1\le N \le 50$,$1 \le T \le 10$。所有数据均在 `int` 范围之内且为正整数。
普通信号机只会有 `G`,`GY`,`Y`,`R` 四种信号。预告信号机只会有 `YY`,`GY` 和 `G` 三种信号。`YY` 预告信号机不会出现在 `GY` 预告信号机或者 `Y` 信号机之前,`R` 信号机不会出现在 `YY` 预告信号机之前。数据保证全部测试点按规定操作时不会紧急停车。
一个信号机最多紧急停车一次。
`Start` 不会有瞬时速度。`Speeddown` 后的速度严格小于瞬时速度,`Speedup` 后的速度严格大于瞬时速度。