题目描述
题目译自 Open Olympiad in Informatics 2024 Day2 T2 「Три массива / Three Arrays」。
给定三个长度为 n 的数组 D、L 和 R,元素编号从 1 开始,以及两个数字 a0 和 b0。你需要按照以下规则构建两个长度为 n+1 的数组 A 和 B:
- A0=a0,B0=b0。
- 对于从 1 到 n 的每个 i,执行以下操作:
- 初始设置 Ai=Ai−1+Di 和 Bi=Bi−1+Di。
- 选择恰好一种以下操作并应用:
- Ai=min(Ai,Li)
- Bi=min(Bi,Ri)
你的目标是构建数组 A 和 B,以最大化 An+Bn 的值。找出通过上述操作可以获得的最大 An+Bn 值。
输入格式
第一行包含一个整数 n (1≤n≤100000),表示数组 D、L 和 R 的长度。
第二行包含 n 个整数 D1,D2,…,Dn (0≤Di≤109),表示数组 D。
第三行包含 n 个整数 L1,L2,…,Ln (0≤Li≤109),表示数组 L。
第四行包含 n 个整数 R1,R2,…,Rn (0≤Ri≤109),表示数组 R。
第五行包含两个整数 a0 和 b0 (0≤a0,b0≤109)。
输出格式
输出一个整数,即通过构建数组 A 和 B 可以获得的最大 An+Bn 值。
5
4 0 7 0 8
10 5 3 7 7
8 5 9 2 23
4 8
34
在第一个输入数据组中,以下操作序列可以获得最大答案:
- A0=4,B0=8。
- A1=A0+D1=4+4=8,B1=B0+D1=8+4=12。
- 对 A1 应用最小值操作:A1=min(A1,L1)=min(10,8)=8,B1=12 保持不变。
- A2=A1+D2=8+0=8,B2=B1+D2=12+0=12。
- 对 A2 应用最小值操作:A2=min(A2,L2)=min(5,8)=5,B2=12 保持不变。
- A3=A2+D3=12,B3=B2+D3=19。
- 对 A3 应用最小值操作:A3=min(A3,L3)=3,B3=19 保持不变。
- A4=A3+D4=3,B4=B3+D4=19。
- 对 A4 应用最小值操作:A4=min(A4,L4)=3,B4=19 保持不变。
- A5=A4+D5=11,B5=B4+D5=27。
- 对 B5 应用最小值操作:A5=11 保持不变,B5=min(B5,R5)=min(27,23)=23。
- A5+B5=11+23=34。
数据范围与提示
详细子任务附加限制及分值如下表所示。其中子任务 0 是样例。
| 子任务 |
分值 |
附加限制 |
子任务依赖 |
备注 |
| 1 |
13 |
n≤15 |
0 |
|
| 2 |
18 |
n≤300 |
0,1 |
| 3 |
14 |
n≤5000,Di=0 |
|
| 4 |
16 |
n≤5000 |
0∼3 |
| 5 |
19 |
Di=0 |
3 |
| 6 |
20 |
|
0∼5 |