#2336. GESP-202409-挑战怪物002
GESP-202409-挑战怪物002
问题背景
小杨正在玩一个堆箱子游戏,堆的血量为h,只有当堆的血量降低为0时小杨才能成功堆箱。
小杨有两种攻击堆的方式:
- 侧面攻击(假设为每秒攻击用的方式),削减堆血量x。
- 重击攻击,小杨准备了一套重击表(不能超过h的重击量),重击形成之后,小杨击下重击数据,告诉小杨下次能重击多少血量。
小杨想知道自己最少攻击几次,通关。小杨知道自己已经准备多少次重击。
问题描述
给定一个正整数h,代表堆的血量。
接下来的数组组成重击表。对于每组测试数据,第一行包含一个正整数k,代表重击数量。
格式
输入
对于每组测试数据,第一行包含一个正整数h。 接下来一行包含k个正整数,代表重击量。
输出
输出一个整数,代表小杨最少攻击几次完成游戏。如果不能通关输出-1。
样例
输入数据 1
3
4
188 999
输出数据 1
2
输入数据 2
2
4
2 2
输出数据 2
-1
提示
对于样例数据1,"平"时削减的量为x=3。小杨准备连续使用重击攻击。首先削减5点血量,之后对堆的血量188造成伤害,这波成功,接着再用一次188重击,堆的血量归零,小杨成功堆箱。
子任务编号 | 数据量占比 | h | k |
---|---|---|---|
1 | 20% | h ≤ 10, k ≤ 10 | |
2 | h ≤ 10^5, k ≤ 10 | ||
3 | 60% | h ≤ 10^9, k ≤ 10^5 |
对于全部数据,保证: 1 ≤ k ≤ 10^5,1 ≤ h ≤ 10^9