试题来源:https://koi.or.kr/archives/。中文翻译做了少量本土化修改。
按照署名—非商业性使用—相同方式共享 4.0 协议国际版进行授权。
一支带有力量 的箭从数轴上的位置 0 向右方发射。在每个整数位置 (),最多可以设置一个防御力为 的干草堆。
当箭撞到干草堆时,如果箭的力量小于或等于该干草堆的防御力,箭会立即停止。反之,如果箭的力量大于防御力,箭的力量会减去 ,然后穿过干草堆继续飞行。
对于两个整数 ,我们将 的值定义为“为了使力量为 的箭在位置 或其左侧停止所需要安装的干草堆的最小数量”。如果无论如何安装都无法使箭停止,则定义 。
请编写一个程序,对于 个整数对 (),分别求出 的值。
第一行给定可以安装干草堆的位置数量 和发射的箭的数量 ,以空格分隔。
第二行给定可以在位置 () 放置的干草堆的防御力 ,以空格分隔。
从第三行开始的 行,给出 个整数对。其中第 () 行给定 和 ,以空格分隔。
输出 行。其中第 () 行输出 的值。
5 6 2 5 6 1 12 1 1 5 14 2 8 3 7 4 14 5 1
1 2 -1 2 4 1
5 5 3 6 1 1 10 1 10 2 10 3 10 4 10 5 10
-1 -1 3 3 1