Shobon 决定使用生成式 AI 来协助开发一个软件项目。该项目包含 $N$ 个任务。每个任务 $i$($i = 1, 2, \dots, N$)都有预先确定的实现工作量 $A_i$ 和复杂度 $B_i$。
Shobon 可以按任意顺序进行这些任务。但是,他不能同时处理多个任务。
每个任务 $i$($i = 1, 2, \dots, N$)可以通过以下两种方式之一完成:
- 手动实现该任务。 Shobon 自己编写代码,这需要 $A_i$ 个单位时间。
- 使用生成式 AI。 为了让 AI 生成正确的代码,Shobon 需要向 AI 解释当前任务以及之前已完成的所有任务。记 $S$ 为之前已完成的所有任务的复杂度之和。准备这一解释需要 $S + B_i$ 个单位时间。随后 AI 会瞬间完成实现,因此不需要额外的实现时间。因此,使用 AI 完成该任务总共需要 $S + B_i$ 个单位时间。
无论使用哪种方式,一旦任务 $i$ 完成,其复杂度 $B_i$ 都会在使用生成式 AI 时计入后续的 $S$ 值中。
求完成所有任务所需的最少总时间。
输入格式
输入由三行组成,格式如下:
$$ \begin{aligned} &N \\ &A_1 \ A_2 \ \dots \ A_N \\ &B_1 \ B_2 \ \dots \ B_N \end{aligned} $$
第一行给出任务数量 $N$($1 \le N \le 2 \times 10^5$)。第二行包含 $N$ 个整数 $A_1, A_2, \dots, A_N$,每个整数均在 $1$ 到 $10^9$ 之间(含端点),表示这 $N$ 个任务的实现工作量。第三行包含 $N$ 个整数 $B_1, B_2, \dots, B_N$,每个整数均在 $1$ 到 $10^8$ 之间(含端点),表示这 $N$ 个任务的复杂度。
输出格式
在一行中输出完成所有任务所需的最少总时间。
样例
输入格式 1
3 10 6 10 5 2 4
输出格式 1
18
输入格式 2
1 4 10
输出格式 2
4
输入格式 3
5 100 100 100 100 100 5 1 4 2 3
输出格式 3
35
输入格式 4
12 18 7 25 12 30 5 16 22 9 28 14 20 6 11 2 8 1 13 5 3 10 4 9 7
输出格式 4
118
说明
对于样例输入 1,考虑按顺序对任务 $2$ 和任务 $3$ 使用生成式 AI,然后手动实现任务 $1$。
- 当开始任务 $2$ 时,尚未完成任何任务。该任务需要 $0 + B_2 = 2$ 个单位时间。
- 当开始任务 $3$ 时,任务 $2$ 已经完成。该任务需要 $B_2 + B_3 = 2 + 4 = 6$ 个单位时间。
- 最后,手动实现任务 $1$ 需要 $A_1 = 10$ 个单位时间。
因此,所有任务可以在 $2 + 6 + 10 = 18$ 个单位时间内完成,这是可能达到的最小值。