#cacc20262B. Bob 的坐标

Bob 的坐标

时间限制: 1.0 秒

空间限制: 512 MB

题目描述

Bob 喜欢一维坐标,现在,在一根数轴上有 2 (2≤n≤106)2\ (2\le n\le 10^6) 个点,第 ii 个点的坐标为 xix_i。

他想要给每个点分配一个非负实数 ri (ri≥0)r_i\ (r_i\ge 0),可以理解为以第 ii 个点为中心的“半径”。这些半径需要满足:

  • 对于 ∀ i∈[1,n)\forall\ i\in [1,n),有 xi+ri≤xi+1−ri+1x_i+r_i\le x_{i+1}-r_{i+1}。

Bob 希望最大化 ∑i=1nri\sum\limits_{i=1}^n r_i 的值(即所有圆盘半径之和最大),请你来帮他计算。

输入格式

从标准输入读入数据。

第一行,输入一个数 nn。

第二行,输入 nn 个数,第 ii 个数表示第 ii 个点的坐标 xix_i。

数据保证 2≤n≤1062\le n\le 10^6,且 0≤x1≤x2≤⋯≤xn≤1090\le x_1\le x_2\le \cdots \le x_n\le 10^9。

输出格式

输出到标准输出。

输出 ∑i=1nri\sum\limits_{i=1}^n r_i 的最大值。可以证明,最大值一定是一个整数。

3
0 2 5
5
4
0 1 3 6
4

子任务

对于所有数据,保证 2≤n≤1062\le n\le 10^6,且 0≤x1≤x2≤⋯xn≤1090\le x_1\le x_2\le \cdots x_n\le 10^9。

本题采用捆绑测试,你只有通过一个子任务中的所有测试点才能得到该子任务的分数。

子任务编号 分值 n≤n\le xn≤x_n\le
1 10 33 10910^9
2 20 1010
3 10 100100 10001000
4 10001000 1000010000
5 20 10610^6 10710^7
6 30 10910^9