T683397 sword

题目描述

镜流面前有 $n$ 个步离人排成一排,第 $i$ 个步离人的编号为 $i$,血量为 $a_i$, 初始时, 镜流没有朔望 (用于发动【寒川映月】) 镜流将使用以下两种技能: * 【无罅飞光】:对一个步离人造成 $x$ 点伤害; * 【寒川映月】:对一个步离人和它两边的步离人造成 $y$ 点伤害; 每回合,镜流将采取以下策略行动 : * 若朔望层数小于 $2$:对最左边的的步离人释放【无罅飞光】,并获得一层朔望; * 否则,设当前的步离人数为 $m$ 对第 $\left \lceil \frac{m}{2} \right \rceil $个步离人释放【寒川映月】,并清空朔望层数。 请你输出每回合的情况 **注意** : * 若步离人当前血量为 $b_i$,且在本回合受到的伤害大于 $b_i$,则步离人实际受到的伤害为 $b_i$ * 步离人死亡 (血量为 $0$ ) 后,位置在它后面的步离人会补到它的位置上 * 详见样例解释。

输入格式

第一行三个整数 $n,x,y$。 第二行 $n$ 个整数,第 $i$ 个数表示第 $i$ 个步离人编号为 $i$, 血量为 $a_i$。

输出格式

我们称以下输出为第 $t$ 个回合中第 $i$ 个步离人受到 $j$ 的伤害的受击情况 * `T=t id=k d=j`, 其中, $k$表示第 $i$ 个步离人原本的编号 对于每一回合, 若本回合镜流攻击了第 $i$ 个步离人, 你需要按照以下格式输出 * 若本回合镜流使用 【无罅飞光】 : 输出一行 $i$ 的受击情况 * 否则, 先输出一行表示 $i-1$的受击情况 (如果存在), 随后输出一行表示 $i$ 的受击情况, 随后输出一行表示 $i+1$ 的受击情况 (如果存在)

说明/提示

样例一: 1. 对第一个步离人(编号$1$)造成了 $1$ 点伤害 2. 对第一个步离人(编号$1$)造成了 $1$ 点伤害, 第一个步离人死亡, 其余步离人向前补位 3. 对第二个步离人(编号$3$), 第三个步离人(编号$4$), 第四个步离人(编号$5$) 造成 $3$ 点伤害, 依次输出结果, 由于第二个和第四个步离人血量不足 $3$, 于是输出它们剩余的血量, 随后, 第五个步离人向前补位 4. 对第一个步离人(编号$2$), 造成 $1$ 点伤害, 第二个步离人(编号$6$) 向前补位 5. 对第一个步离人(编号$6$), 造成 $1$ 点伤害 设 $T_{max}$ 表示最大的回合数 | 测试点编号 | $n$ | $T_{max}$ | |:-:|:-:|:-:| | $1$, $2$ | $\le 1$ | $\le 10^5$ | | $3$, $4$ | $\le 20$ | $\le 10^3$ | | $5$ ~ $10$ | $\le 100$ | $\le 10^5$ | 对于所有的数据, $n\ge 1$, $1\le x,y,a_i \le 10^9$