#P7974. [KSN2021] Delivering Balls

[KSN2021] Delivering Balls

题目描述

给定一个长度为 NN 的序列 HH 和 QQ 次询问。

第 ii 次询问中,你初始在第 SiS_i 列 HSiH_{S_i} 行,想要到第 TiT_i 列第 HTiH_{T_i} 行。

你可以进行若干次移动。每次移动你可以选择以下两种参数:

  • 列 −1-1,列不变,列 +1+1。
  • 行 −1-1,行不变,行 +1+1。

如果你选择行 −1-1,消耗 11 体力,如果你选择行不变,消耗 22 体力,如果你选择行 +1+1,消耗 44 体力。

你需要保证每次移动后,你的列数 xx 在 [1,N][1,N] 之间,且你的行数 yy 不小于 HxH_x。

对于每个询问,你需要求出你消耗体力的最小值。

输入格式

第一行输入一个正整数 NN。

第二行输入 NN 个正整数 HiH_i。

第三行输入一个正整数 QQ。

接下来 QQ 行,每行输入两个正整数 Si,TiS_i,T_i。

输出格式

对于每个询问,输出一行,包含一个整数,代表消耗体力的最小值。

4
9 1 8 2
2
1 3
4 2
3
31
9
1 2 3 2 1 2 3 2 1
4
1 9
4 6
2 6
5 2
18
4
9
9

提示

【样例解释】

以下为第一个样例中两个询问的图示:

【数据范围】

  • Subtask 1(7 points):只存在一组数据,满足 N=8N=8,Q=4Q=4,H=[1,9,3,3,5,4,8,2]H=[1,9,3,3,5,4,8,2],(Si,Ti)(S_i,T_i) 依次为 (1,8)(1,8),(3,6)(3,6),(6,4)(6,4) 和 (7,2)(7,2)。
  • Subtask 2(5 points):Si+1=TiS_i+1=T_i。
  • Subtask 3(6 points):Hi=iH_i=i。
  • Subtask 4(18 points):N,Q,Hi≤100N,Q,H_i\leq 100。
  • Subtask 5(24 points):N,Q≤1000N,Q\leq 1000。
  • Subtask 6(13 points):Si=1S_i=1。
  • Subtask 7(27 points):无特殊限制。

对于所有数据,2≤N≤2×1052\leq N\leq 2\times 10^5,Hi≤109H_i\leq 10^9,Q≤2×105Q\leq 2\times 10^5,1≤Si,Ti≤N1\leq S_i,T_i\leq N。