#P4913. 骑车路线

骑车路线

Description

Tomislav 最近发现自己的身材完全走样了,她走楼梯都变得很累。

一天早上她起来以后,她决定恢复姣好的身材。

她最喜欢的运动是骑自行车,因此她决定在本地的小山上做一次旅行。

她骑自行车的路线可以描述为 n 个数字的数列,每个数字表示每一段路地海拔高度。

Tomislav 最感兴趣的是最长的高度一直上升的子序列,她称这一段路为爬坡,Tomislav 只想考虑这段爬坡的高度差(即开始和最后的数字的差距),而不是什么路程长度。

一段爬坡路被定义为长度至少为 2 的连续的非下降子数列。

例如,我们考虑如下路线数列 12 3 5 7 10 6 1 11,这里有两个爬坡,第一个爬坡(3 5 7 10)的高度差是 7,第二个爬坡的高度差是 10(1 11)。

帮助 Tomislav 计算高度差最大的爬坡的高度差。

Input Format

第一行输入一个数字n。
第二行输入n个数据表示每一段路地海拔高度。
1<=n<=1e6。
每一段路地海拔高度<=1e6.

Output Format

输出一行结果,表示最大高度差。

如果不存在爬坡,则输出 0

5
1 2 1 4 6
5

Source

双指针