信息学奥赛一本通 1302:股票买卖(evd)
===
> https://www.cnblogs.com/xwf2005/p/17877940.html
先算出一個 0~i的最小值表格 z
再算當下位置i-z[i]跟f1前一項的最大值 f1
再算所有的最大值-z[i]跟f2後一項的最大值 f2
7
5 14 -2 4 9 3 17
z : 5 5 -2 -2 -2 -2
f1: 0 9 9 9 11 11 19
f2: 19 19 19 14 14 14 0
f1 + f2總和最大值等於答案
---
```python=
t = int(input())
while t > 0:
n = int(input())
z = [int(i) for i in input().split()]
z2 = [0] * (n+1)
z3 = [0] * (n)
mi = 9999999999
for i in range(n):
mi = min(mi,z[i])
z3[i] = max(z3[i-1],z[i]-mi)
maa = -2
for i in range(n-1,-1,-1):
maa = max(maa,z[i])
z2[i] = max(z2[i+1],maa-z[i])
ma = -1
for i in range(n):
ma = max(ma,z2[i] + z3[i])
print(ma)
t -= 1
```