Shobon 決定用生成式 AI 幫手開發一個軟件項目。呢個項目有 $N$ 個任務。每個任務 $i$($i = 1, 2, \dots, N$)都有預先定好嘅實現工作量 $A_i$ 同埋複雜度 $B_i$。
Shobon 可以按任意順序去做呢啲任務。不過,佢唔可以同時處理多過一個任務。
每個任務 $i$($i = 1, 2, \dots, N$)可以用以下兩種方法之一完成:
- 手動實現個任務。 Shobon 自己寫 code,需要用 $A_i$ 個單位時間。
- 使用生成式 AI。 為咗令 AI 生成啱嘅 code,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$ 個單位時間內完成,呢個係可能嘅最小值。