题目描述
有 N 个方格排成一行,从左到右编号为 1,2,…,N。
当你位于方格 i 时,可以进行以下移动之一。
- 选择一个满足 1≤j<i 的整数 j,移动到方格 j。该移动的代价为 Li。
- 选择一个满足 i<j≤N 的整数 j,移动到方格 j。该移动的代价为 Ri。
给定 Q 个查询,请逐一回答。每个查询的格式如下。
- 给定整数 s 和 t。求从方格 s 出发,通过反复移动到达方格 t 所需的最小总代价。
输入格式
输入按以下格式从标准输入读入:
- N Q
- L2 L3 … LN
- R1 R2 … RN−1
- query1
- query2
- ⋮
- queryQ
其中,queryi 是第 i 个查询,格式如下:
输出格式
输出 Q 行。
第 i 行应包含第 i 个查询的答案。
5 7
5 6 2 9
3 1 3 8
1 2
2 1
2 4
3 2
3 5
4 3
5 2
3
3
1
5
3
2
9
下面解释第 1 个和第 2 个查询。
对于第 1 个查询,如果从方格 1 直接移动到方格 2,总代价为 R1=3,这是可能的最小总代价。
对于第 2 个查询,如果从方格 2 移动到方格 4,再从方格 4 移动到方格 1,总代价为 R2+L4=3,这是可能的最小总代价。
数据范围
-
2≤N≤3×105
-
1≤Q≤3×105
-
1≤Li≤109 (2≤i≤N)
-
1≤Ri≤109 (1≤i≤N−1)
-
每个查询中 1≤s,t≤N。
-
每个查询中 s=t。
-
所有输入值均为整数。
-
来源:AtCoder ABC 479 D
子任务设置
- 子任务 1(30 分):N,Q≤2000。
- 子任务 2(70 分):无特殊限制。