货币兑换

题目描述
有 N 个编号从 1 到 N 的国家。每个国家 i 初始持有 Ai 单位货币。高桥可以执行以下操作任意次数(包括零次):
- 选择整数 i(1≤i≤N−1)
- 如果当前持有至少 Si 单位的 i 国货币:
- 支付 Si 单位的 i 国货币
- 获得 Ti 单位的 (i+1) 国货币
求最终能获得的第 N 国货币的最大数量。
约束条件
- 所有输入为整数
- 2≤N≤2×105
- 0≤Ai≤109
- 1≤Ti≤Si≤109
输入格式
从标准输入按以下格式读取数据:
N
A1 A2 … AN
S1 T1
S2 T2
⋮
SN−1 TN−1
输出格式
一个整数,表示最多可以兑换多少N国货币
4
5 7 0 3
2 2
4 3
5 2
5
样例1解释
初始状态
设序列 A=(A1,A2,A3,A4) 表示高桥持有的各国货币数量,初始状态为:
A=(5,7,0,3)
操作流程
通过以下四次操作逐步优化货币持有量:
-
操作 i=2
- 支付:4 单位国家2的货币
- 获得:3 单位国家3的货币
- 更新后状态:A=(5, 3, 3, 3)
-
操作 i=1
- 支付:2 单位国家1的货币
- 获得:2 单位国家2的货币
- 更新后状态:A=(3, 5, 3, 3)
-
再次操作 i=2
- 支付:4 单位国家2的货币
- 获得:3 单位国家3的货币
- 更新后状态:A=(3, 1, 6, 3)
-
操作 i=3
- 支付:5 单位国家3的货币
- 获得:2 单位国家4的货币
- 更新后状态:A=(3, 1, 1, 5)
最终结果
此时高桥持有 5 单位国家4的货币,这是通过操作能获得的最大值。
10
32 6 46 9 37 8 33 14 31 5
5 5
3 1
4 3
2 2
3 2
3 2
4 4
3 3
3 1
45