#7049. 练枪
练枪
题目
题干
你特别喜欢打瓦,但是你总是被赋能哥颗秒,你痛定思痛,下定决心一定要好好练枪,于是你去“靶场”练枪,“训练场 - 静态靶练枪模式” 中记录了 你n
次射击的 “单组练枪数据”。每次练枪数据包含两个核心指标,且所有数据已按以下规则自动排序:
- 单组耗时
t[i]
(单位:秒,范围[5, 180]
):所有练枪组按耗时非递减排序(存在相同耗时的组); - 爆头率
h[i]
(单位:%,范围[10, 100]
,保留 1 位小数):对于耗时相同的练枪组,其爆头率严格递增(即若t[i] = t[j]
且i < j
,则h[i] < h[j]
)。
为了分析自己的练枪效率,你需要从数据中找到第一个同时满足以下两个条件的练枪组索引(从 0
开始),该组数据将作为你当前练枪水平的 “基准参考组”:
- 1.单组耗时 严格大于 你设定的 “基础耗时阈值
base_t
”(耗时过短可能是你要去上课了,随便打了几下,需排除); - 2.爆头率 不小于 你期望的 “目标爆头率
target_h
”(爆头率需达标,才能作为有效参考)。
若不存在同时满足两个条件的练枪组,返回 -1
,表示当前练枪数据无有效参考组,需重新调整练枪方案。
输入格式
第一行一个整数n
第二行第一个数字表示base_t,第二个表示target_h
接下来两行每行n个数字分别代表单组的t和h
输出格式
输出第一个同时满足以下两个条件的练枪组索
条件
- 你近期已累计记录了
n
<=1e6
组数据,数据加载工具的筛选响应时间限制为0.1
秒,(线性遍历会导致数据加载超时); - 你的手机内存太小了,在掌瓦上的数据查看工具内存有限,空间复杂度为 O(1);
- 若存在多个符合条件的练枪组,仅需返回索引最小的组
示例
输入:
12
40 75.0
t = [25, 30, 30, 40, 40, 45, 45, 45, 50, 50, 60, 60]
h = [62.5, 68.0, 72.3, 70.1, 74.8, 73.5, 75.2, 78.9, 72.0, 76.5, 79.3, 82.1]
输出:
`6`
Related
In following contests: