AT_wupc_07 だるま落とし
题目描述
在这道题中,我们有一个专门用于玩“达摩落”游戏的机器人。这个机器人配备有一把锤子,可以精确打击位于指定高度的积木块。随着机器人的研发逐步接近尾声,现在需要进行实际测试。
考虑一开始有 $N$ 块积木堆叠在一起,每块积木的高度从下往上依次为 $a_{1}, a_{2}, \ldots, a_{N}$。机器人的锤子有一个宽度半径,记为 $H$。现在有 $M$ 个查询,请按顺序处理。
- **“添加积木”(add) 查询**:在当前堆顶上添加一个高度为 $arg_{i}$ 的积木。这类查询不需要任何输出。
- **“挑战”(challenge) 查询**:机器人尝试把锤子中心置于高度 $arg_{i}$ 处来打击积木。根据锤子的状态需要输出不同的指令。
如果锤子跨越两个或更多积木,积木会崩溃,此时应输出 `stop`,表示机器人应该停止动作。如果位置太高,以至于锤子无法触及任何积木,则应输出 `miss`,这时积木不会受到影响。如果这些情况都不满足,说明锤子位置正确,应输出 `go`。这表示机器人可以在指定位置旋转锤子并移除一块积木,其上的积木会直接掉落,整个堆的积木数减少一块。即使锤子触碰到积木的边缘也应输出 `go`。
### 输入格式
- 第一行输入三个整数 $N, M, H$,分别表示初始积木数量、查询数量、以及锤子的半径。
- 第二行输入 $N$ 个整数,分别为每块积木的高度 $a_{1}, a_{2}, \ldots, a_{N}$。
- 接下来的 $M$ 行包含各个查询,由操作名称和参数组成,每行输入一个查询。
### 输出格式
对每个 `challenge` 操作,根据其结果依次输出 `go`、`stop` 或 `miss`。最后需输出一个换行符。
### 数据范围与提示
- $1 \leq N \leq 100,000$
- $1 \leq M \leq 100,000$
- $1 \leq H \leq 100,000$
- $1 \leq a_{i} \leq 100,000$
- 若 $operation_{i} = add$,则 $1 \leq arg_{i} \leq 100,000$
- 若 $operation_{i} = challenge$,则 $H \leq arg_{i} \leq 1,000,000,000,000$
在一部分测试数据中,为满足 20 分的特殊条件:
- $1 \leq N \leq 1,000$
- $1 \leq M \leq 1,000$
### 示例
#### 输入
```
3 10 3
10 10 10
challenge 5
add 20
challenge 10
challenge 15
add 1
add 9
challenge 31
challenge 38
challenge 50
challenge 40
```
#### 输出
```
go
stop
go
stop
go
miss
miss
```
**本翻译由 AI 自动生成**
输入格式
无
输出格式
无