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 自动生成**

输入格式

输出格式