百度2023春招算法笔试题 - 旅行者与山峰


题目描述
n座山峰横亘在旅行者与目的地之间,阻挡着他的去路,旅行者必须依次经过这n座山峰到达目的地,即,旅行者必须先经过第一座山,再经过第二座,...,最后经过第n座。
山峰的险峻程度可以用险峻值h衡量,第i座山峰的险峻值为h_i。同时,旅行者登山的能力可以用能力值k衡量。
经过一座山峰的方式有两种:攀登和绕过。如果旅行者的能力值k不小于山峰的险峻值h,那么旅行者既可以攀登这座山峰,也可以绕过这座山峰;反之,如果旅行者的能力值小于山峰的险峻值,那么旅行者既不能攀登也不能绕过这座山峰。
同时,每座山峰具有一个加成值a,第i座山峰的加成值为a_i。如果旅行者选择攀登第i座山峰,那么在攀登结束后,旅行者的能力值将增加a_i;如果旅行者选择绕过,则能力值不会获得加成。
给出旅行者的初始能力值k_0,n座山峰的险峻值h_i和加成值a_i (1≤i≤n),求旅行者至少需要攀登几座山峰才能到达目的地。

输入描述
首先输入一行,包含两个整数n,k_0。其中1≤n≤10^5,表示山峰个数;1≤k_0≤10^9,表示旅行者的初始能力值。
之后输入一行,包含n个整数h_1, h_2, ..., h_n,表示各个山峰的险峻値。1≤h_i≤10^9。
最后输入一行,包含n个整数a_1, a_2, ..., a_n,表示各个山峰的加成值。0≤a_n≤10^9。

输出描述
输出一行,包含一个整数,表示旅行者为了到达目的地至少需要攀登的山峰个数。如果旅行者无法到达目的地,则输出-1。

样例输入
5 3
3 2 5 4 6
1 2 1 3 0

样例输出
2

样例解释
旅行者可以选择攀登第2座山和第3座山,这样旅行者经过第1至5座山时的能力值分别为:3 3 5 6 6,均不小于各座山的峻险值

样例输入2
1 2
3
100

样例输出2
-1
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值