CSES - HIIT Open 2018 - Results
 Task: Buy Low, Sell High Sender: El Numero Uno Submission time: 2018-05-26 15:28:15 +0300 Language: Python3 Status: READY Result: TIME LIMIT EXCEEDED
Test results
testverdicttime
#1--details
#2--details
#3--details
#4--details
#5--details
#6ACCEPTED0.03 sdetails
#7ACCEPTED0.05 sdetails
#8ACCEPTED0.06 sdetails
#9--details

### Code

```def parseM(m, v, reverse):
n = []
for pair in reversed(m):
if (v < pair[0] and not reverse) or (v > pair[0] and reverse):
n.append([v, v, 0])
if pair[2] > 0:
n.append(pair)
if (v > pair[1] and not reverse) or (v < pair[1] and reverse):
n.append([pair[0], v, abs(v - pair[0])])
n.append(pair)
while len(n) > 1 and n[-1][2] <= n[0][2]:
n.pop()
return list(reversed(n))

def getAns(l, reverse=False):
m = [[[l[0],l[0],0]]]
for i in range(1, len(l)):
v = l[i]
m.append(parseM(m[-1], v, reverse))
return m

input()
l = list(map(int, input().split()))
d1 = getAns(l)
d2 = list(reversed(getAns(list(reversed(l)), True)))
m = []
for i in range(len(l)):
m.append(d1[i][0][2] + d2[i][0][2])
print(max(m))

```

### Test details

#### Test 1

Verdict:

input
500000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
0

user output
(empty)

#### Test 2

Verdict:

input
500000
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

correct output
499999

user output
(empty)

#### Test 3

Verdict:

input
500000
500000 499999 499998 499997 49...

correct output
0

user output
(empty)

#### Test 4

Verdict:

input
500000
617752857 533265574 365848360 ...

correct output
1999980408

user output
(empty)

#### Test 5

Verdict:

input
500000
209620375 316066031 756114325 ...

correct output
1999992655

user output
(empty)

#### Test 6

Verdict: ACCEPTED

input
1
1

correct output
0

user output
0

#### Test 7

Verdict: ACCEPTED

input
2
1 1

correct output
0

user output
0

#### Test 8

Verdict: ACCEPTED

input
2
2 1

correct output
0

user output
0

#### Test 9

Verdict:

input
500000
1 1000000000 2 2 2 2 2 2 2 2 2...

correct output
1999999998

user output
(empty)