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$ 個單位時間內完成,這是可能的最小值。