选数
类型:程序题

题目描述 给定两个包含 $n$ 个整数的数组 $a = [a_1, \dots, a_n]$ 与 $b = [b_1, \dots, b_n]$。你需要指定若干下标 $p_1 < \dots < p_k$ ($1 \le k \le n$)使得以下条件成立:

  • $1 \le p_i \le n$ ($1 \le i \le k$);
  • $p_{i+1} \ge p_i + b_{p_i}$ ($1 \le i < k$)。

你需要在满足以上条件的前提下最大化 $\sum_{i=1}^{k} a_{p_i}$,也即最大化数组 $a$ 对应下标的整数之和。

输入格式 第一行,一个正整数 $n$,表示数组长度。 第二行,$n$ 个非负整数 $a_1, a_2, \dots, a_n$,表示数组 $a$。 第三行,$n$ 个非负整数 $b_1, b_2, \dots, b_n$,表示数组 $b$。

输出格式 一行,一个整数,表示在满足下标条件的前提下,数组 $a$ 对应下标的整数之和的最大值。

输入样例 1

4
1 2 3 4
3 3 1 1

输出样例 1

7

输入样例 2

6
1 1 4 5 1 4
1 2 3 2 1 0

输出样例 2

11

数据范围 对于 40% 的测试点,保证 $2 \le n \le 10^3$。

对于所有测试点,保证 $2 \le n \le 10^5$,$0 \le a_i \le 10^9$,$0 \le b_i \le n$。

代码编辑器 加载中...
测试用例输入
{{resultStatus.text}}
乐编题库AI助手
人工客服
微信扫码联系客服
历史对话
{{ s.title || '未命名对话' }}
{{ s.created_at }}
暂无历史对话
我能帮助你什么?