CF515E Drazil and Park

题目描述

Drazil 是一只猴子。他生活在一个环形公园里。公园周围有 $n$ 棵树。第 $i$ 棵树和第 $(i+1)$ 棵树之间的距离是 $d_i$,第 $n$ 棵树和第一棵树之间的距离是 $d_n$。第 $i$ 棵树的高度为 $h_i$。 Drazil 每天早上都会晨跑。晨跑包括以下步骤: - Drazil 选择两棵不同的树。 - 他会先爬上第一棵树。 - 然后他从第一棵树下来,绕公园(有两种可能的方向)跑到第二棵树,并爬上去。 - 最后他从第二棵树下来。 但总是有孩子在某些连续的树附近玩耍。Drazil 受不了小孩的吵闹,所以他不能选择靠近有孩子的树。他甚至不能停留在这些树附近。 如果 Drazil 选择的是第 $x$ 棵和第 $y$ 棵树,可以用 $2(h_x+h_y)+dist(x,y)$ 估算这次晨跑所消耗的能量。由于 $x$ 和 $y$ 之间的两条弧上只有一条有孩子,因此 $dist(x,y)$(即 $x$ 和 $y$ 之间的距离)是唯一确定的。 现在,你知道第 $i$ 天孩子们在第 $a_i$ 棵树和第 $b_i$ 棵树之间玩耍。更正式地讲,如果 $a_i \leq b_i$,孩子们在编号为 $[a_i, b_i]$ 的树之间玩耍;否则,他们在编号为 $[a_i, n] \cup [1, b_i]$ 的树之间玩耍。 请帮助 Drazil 确定他应该选择哪两棵树,以便消耗最多的能量(毕竟他想变得健康又帅气),并输出每天他能消耗的最大能量。

输入格式

第一行包含两个整数 $n$ 和 $m$($3 \leq n \leq 10^5$,$1 \leq m \leq 10^5$),分别表示树的数量和天数。 第二行包含 $n$ 个整数 $d_1, d_2, ..., d_n$($1 \leq d_i \leq 10^9$),表示相邻两棵树之间的距离。 第三行包含 $n$ 个整数 $h_1, h_2, ..., h_n$($1 \leq h_i \leq 10^9$),表示每棵树的高度。 接下来的 $m$ 行,每行包含两个整数 $a_i$ 和 $b_i$($1 \leq a_i, b_i \leq n$),描述第 $i$ 天的情况。总是有至少两棵不同的树未被孩子影响,Drazil 可以选择。

输出格式

每一天输出一个结果,分别表示 Drazil 该天能消耗的最大能量。

说明/提示

由 ChatGPT 5 翻译