#7049. 练枪

练枪

题目

题干

你特别喜欢打瓦,但是你总是被赋能哥颗秒,你痛定思痛,下定决心一定要好好练枪,于是你去“靶场”练枪,“训练场 - 静态靶练枪模式” 中记录了 你n 次射击的 “单组练枪数据”。每次练枪数据包含两个核心指标,且所有数据已按以下规则自动排序:

  1. 单组耗时 t[i](单位:秒,范围 [5, 180]):所有练枪组按耗时非递减排序(存在相同耗时的组);
  2. 爆头率 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

输出格式

输出第一个同时满足以下两个条件的练枪组索

条件

  1. 你近期已累计记录了 n <=1e6 组数据,数据加载工具的筛选响应时间限制为 0.1 秒,(线性遍历会导致数据加载超时);
  2. 你的手机内存太小了,在掌瓦上的数据查看工具内存有限,空间复杂度为 O(1);
  3. 若存在多个符合条件的练枪组,仅需返回索引最小的组

示例

输入:

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`