Problem:


Score : 300 points

Problem Statement

N persons are standing in a row. The height of the i-th person from the front is A_i.

We want to have each person stand on a stool of some heights - at least zero - so that the following condition is satisfied for every person:

Condition: Nobody in front of the person is taller than the person. Here, the height of a person includes the stool.

Find the minimum total height of the stools needed to meet this goal.

Constraints

1 \leq N \leq 2\times 10^5

1 \leq A_i \leq 10^9

All values in input are integers.

Input

Input is given from Standard Input in the following format:

N
A_1 \ldots A_N

Output

Print the minimum total height of the stools needed to meet the goal.

Sample Input 1

5
2 1 5 4 3

Sample Output 1

4

If the persons stand on stools of heights 0, 1, 0, 1, and 2, respectively, their heights will be 2, 2, 5, 5, and 5, satisfying the condition.

We cannot meet the goal with a smaller total height of the stools.

Sample Input 2

5
3 3 3 3 3

Sample Output 2

0

Giving a stool of height 0 to everyone will work.



Sample input:
5
2 1 5 4 3


Sample output:
4

Submission status: Accepted

Solution code:
# compiled by pythran
"""
#pythran export main2()


def main2():
    stdin = open('/dev/stdin')
    stdin.readline()
    ans = 0
    b = 0
    for x in stdin.readline().split():
        a = int(x)
        if a > b:
            b = a
        else:
            ans += b - a
    print(ans)
"""
import os, sys
p = os.path.dirname(__file__)
pymain = os.path.join(p, "a.out")
if len(sys.argv) == 1:
    import subprocess
    if p == "":
        pymain = "./" + pymain
    subprocess.call(pymain)
else:
    import gzip, base64, stat
    gz = b'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'
    bin = gzip.decompress(base64.b64decode(gz))
    with open(pymain, "wb") as f:
        f.write(bin)
    os.chmod(pymain, 0o775)

Submission status: Accepted

Solution code:
def main():
    import sys
    def input():
        return sys.stdin.readline()[:-1]
    N=int(input())
    A=list(map(int,input().split()))
    h=0
    for i in range(N-1):
        if A[i]>A[i+1]:
            h += A[i]-A[i+1]
            A[i+1]=A[i]
    
    print(h)



if __name__ == '__main__':
    main()

Submission status: Accepted

Solution code:
def resolve():
    N = int(input())
    A = list(map(int, input().split()))
    max_height = A[0]
    step_sum = 0
    for Ai in A:
        if Ai>=max_height:
            max_height = Ai
        else:
            step_sum = step_sum + (max_height - Ai)
    print(step_sum)
resolve()

Submission status: Accepted

Solution code:
a = int(input())
b = list(map(int,input().split()))
bmax = 0
ans = 0
for i in range(a):
    if i == 0:
        bmax = b[i]
    else:
        if bmax < b[i]:
            bmax = b[i]
        elif bmax > b[i]:
            ans += bmax - b[i]
print(str(ans))

Submission status: Accepted

Solution code:
# -*- coding: utf-8 -*-
N = int(input())
A = list(map(int, input().split()))
ans = 0
for i in range(N-1):
    delta = A[i+1]-A[i]
    if delta < 0:
        A[i+1] += -delta
        ans += -delta
print(ans)

Submission status: Accepted

Solution code:
n = int(input())
x = [int(i) for i in input().split()]
ans = 0
for i in range(n-1):
    if x[i] - x[i+1] > 0:
        ans += x[i] - x[i+1]
        x[i+1] = x[i]
print(ans)

Submission status: Accepted

Solution code:
n = int(input())
height = [int(i) for i in  input().split()]
max_height = height[0]
step = 0
for i in range(n):
    if height[i] <= max_height:
        step += max_height - height[i]
    else:
        max_height = height[i]
print(step)

Submission status: Accepted

Solution code:
n = int(input())
A = [int(i) for i in input().split()]
ans = 0
for i in range(1,len(A)):
    sa = A[i] - A[i-1]
    if sa < 0:
        A[i] = A[i-1]
        ans += abs(sa)
print(ans)

Submission status: Accepted

Solution code:
N = int(input())
array = list(map(int, input().split()))
ans = 0
for i in range(1, N):
  if array[i-1] > array[i]:
    x = array[i-1] - array[i]
    array[i] = array[i] + x
    ans += x

print(ans)

Submission status: Accepted

Solution code:
N = int(input())
line = input().split()
A = [int(i) for i in line]

pro = 0
board = 0

for i in range(N):
  if(pro>A[i]):
    board = board + (pro - A[i])
    A[i] = pro
  
  pro = A[i]
print(board)

Submission status: Accepted

Solution code:
n= int(input())
data = input().split()
data = [int(x) for x in data]
ans = 0
for i in range(1,n):
    if(data[i]<data[i-1]):  
        ans = ans + data[i-1] -data[i]
        data[i] = data[i-1]
print(ans)

Submission status: Accepted

Solution code:
def main():
  N = int(input())
  A = list(map(int, input().split()))
  A_copy = A.copy()
  d_sum = 0
  
  for i in range(N - 1):
    a_dif = A[i+1] - A[i]
    if A[i+1] < A[i]:
      A[i+1] = A[i]
  
  for i in range(N):
    d_sum += A[i] - A_copy[i]
  
  print(d_sum)
  
if __name__ == "__main__":
  main()

Submission status: Accepted

Solution code:
N, *A = map(int, open(0).read().split())

ans = []
p = A[0]
for i in range(N):
    if i == 0:
        continue
    if p > A[i]:
        ans.append(p - A[i])
    else:
        p = A[i]

print(sum(ans))

Submission status: Accepted

Solution code:
n=int(input())
a=list(map(int,input().split(' ')))
b=[]
for i in range(1,n):
	if a[i]<a[i-1]:
		b.append(a[i-1]-a[i])
		a[i]=a[i-1]
print(sum(b))

Submission status: Accepted

Solution code:
N = int(input())
A = list(map(int,input().split()))
ans = 0

for i in range(1,N):
    diff = A[i - 1] - A[i]
    if diff <= 0:
        pass
    else:
        ans += diff
        A[i] += diff
print(ans)

Submission status: Accepted

Solution code:
ran = int(input())
Ns = list(map(int, input().split()))
ans = 0
base = Ns[0]
for i in range(1, ran):
    if Ns[i] < base:
        preans = base - Ns[i]
        ans += preans
    else:
        base = Ns[i]
print(ans)

Submission status: Accepted

Solution code:
import sys
sys.setrecursionlimit(10**7)
read = sys.stdin.read
readlines = sys.stdin.readlines
def main():
    n, *a = map(int, read().split())
    r = 0
    st = a[0]
    for ae in a[1:]:
        if st > ae:
            r += st - ae
        else:
            st = ae
    print(r)


if __name__ == '__main__':
    main()

Submission status: Accepted

Solution code:
N = int(input())
A = list(map(int,input().split()))
S = 0
for i,a in enumerate(A):
    if i != 0:
        if A[i-1] > A[i]:
            S += ( A[i-1] - A[i] )
            A[i] = A[i-1]
print(S)

Submission status: Accepted

Solution code:
n = int(input())
a = list(map(int, input().split()))
step = 0
for i in range(1, n):
    if a[i] < a[i-1]:
        humidai = a[i-1] - a[i]
        step += humidai
        a[i] = a[i] + humidai
print(step)

Submission status: Accepted

Solution code:
n = int(input())
a = list(map(int,input().split()))

ans = 0

for i in range(n-1):
    if a[i+1] - a[i] < 0:
        ans += abs(a[i+1] - a[i])
        a[i+1] = a[i]
        
print(ans)

Submission status: Accepted

Solution code:
N = int(input())
A = [int(x) for x in input().split()]

max_height = A[0]
counter = 0
for i in range(1, N):
    if max_height - A[i] > 0:
        counter += max_height - A[i]
    else:
        max_height = A[i]
print(counter)

Submission status: Accepted

Solution code:
n = int(input())
lst = list(map(int, input().split()))
count = 0
t = 0
for i in range(n):
    if i == 0:
        continue
    if lst[i] < lst[i-1]:
        t = lst[i-1] - lst[i]
        count += t
        lst[i] += t
print(count)

Submission status: Accepted

Solution code:
n = int(input())
a = list(map(int, input().split()))

ans = 0

for i in range(n - 1):
  if a[i] > a[i + 1]:
    diff = a[i] - a[i + 1]
    ans += diff
    a[i + 1] += diff

print(ans)

Submission status: Accepted

Solution code:
n = int(input())

l = list(map(int,input().split()))

res = 0
base = l[0]

for i in range(1,n):
  if base < l[i]:
    base =l[i]
  elif base > l[i]:
    res += base - l[i]
    
print(res)

Submission status: Accepted

Solution code:
N = int(input())
A = list(map(int, input().split()))
cnt = 0
for i in range(N-1):
    
    if A[i+1] < A[i]:
        cnt += A[i] - A[i+1]
        A[i+1] = A[i]
    # print(A)
    # print(cnt)
print(cnt)

Submission status: Accepted

Solution code:
N = int(input())
A = list(map(int, input().split()))
s = 0
for n in range(1,N):
  if A[n] < A[n-1]:
    add = A[n-1] - A[n]
    s = s + add
    A[n] = A[n-1]
print(s)

Submission status: Accepted

Solution code:
#!/usr/bin/env python3
n = int(input())
a = list(map(int, input().split()))
tmp = 0
ans = 0
for i in a:
    if tmp > i:
        ans += tmp - i
    else:
        tmp = i
print(ans)

Submission status: Accepted

Solution code:
N = int(input())
A = [int(i) for i in input().split()]
ans = 0
for i in range(1, N):
    if A[i] < A[i-1]:
        ans+= A[i-1] - A[i]
        A[i] = A[i-1]
print(ans)

Submission status: Accepted

Solution code:
# -*- coding: utf-8 -*-
N = int(input())
A = list(map(int, input().split(' ')))

ans = []
for i in range(N):
  if i == 0:
    ans.append(0)
  else:
    h = A[i-1] - A[i]
    if h < 0:
      ans.append(0)
    else:
      ans.append(h)
      A[i] += h

print(sum(ans))

Submission status: Accepted

Solution code:
def main():
    n = int(input())
    A = list(map(int, input().split()))
    
    total_high = 0
    for i in range(n-1):
        if A[i] > A[i+1]:
            delta_high = A[i] - A[i+1]
            A[i+1] += delta_high
            total_high += delta_high
    return print(total_high)

main()

Submission status: Accepted

Solution code:
n = int(input())
a = list(map(int, input().split()))
res = 0
i_max = 0
for i in a:
    res += max(i_max - i, 0)
    i_max = max(i, i_max)
print(res)

Submission status: Accepted

Solution code:
n=int(input())
A=list(map(int,input().split()))
ans=0
ma=A[0]
for i in range(1,n):
  if ma<A[i]:
    ma=A[i]
  else:
    ans+=(ma-A[i])
print(ans)

Submission status: Accepted

Solution code:
n = (int)(input())
a=list(map(int, input().split(" ")))
count=0
for i in range(n - 1):
  if a[i] > a[i + 1]:
    count += a[i] - a[i+1]
    a[i+1] += a[i] - a[i+1]
print(count)

Submission status: Accepted

Solution code:
n = int(input())
a = list(map(int, input().split()))

ans = 0
tallest = a[0]
for i in range(n):
    if tallest - a[i] > 0:
        ans = ans + tallest - a[i]
    else:
        tallest = a[i]

print(ans)

Submission status: Accepted

Solution code:
N = int(input())
d = list(map(int, input().split()))
min = 0
ans = 0
for i in d:
  if i > min:
    min = i
  else:
    ans += min - i

print(ans)

Submission status: Accepted

Solution code:
import os
import sys
from collections import defaultdict, Counter
from itertools import product, permutations,combinations, accumulate
from operator import itemgetter
from bisect import bisect_left,bisect
from heapq import heappop,heappush,heapify
from math import ceil, floor, sqrt
from copy import deepcopy


def main():
    n = int(input())
    a_list = list(map(int, input().split()))
    max_num = 0
    ans = 0
    for i in range(n-1):
        if i == 0:
            max_num = a_list[i]
        
        if max_num > a_list[i+1]:
            ans += max_num - a_list[i+1]
        else:
            max_num = a_list[i+1]
    print(ans)

if __name__ == '__main__':
	main()

Submission status: Accepted

Solution code:
N = int(input()) 
A = list(map(int, input().split()))

biggest = 0
humidai = 0


for iter in range(N):
    if iter == 0:
        continue

    if A[iter-1] > A[iter]:
        biggest = A[iter-1]
        humidai += A[iter-1] - A[iter]
        A[iter] += A[iter-1] - A[iter]
        # print(humidai)


    if A[iter-1] < A[iter]:
        biggest = A[iter]


print(humidai)

Submission status: Accepted

Solution code:
n= int(input())
A = list(map(int, input().split()))
sum=0
for i in range(1,n):
  if A[i-1]> A[i]:
    sum +=A[i-1] - A[i]
    A[i]=A[i-1]
  else:
    continue
    
print(sum)

Submission status: Accepted

Solution code:
n = int(input())
a = list(map(int, input().split()))

aMax = max(a)

answer = 0
countOld = 0

for i,v in enumerate(a):
    if i != 0:
        count = 0
        count = a[i-1] + countOld - v
        if count < 0:
            count = 0
        answer += count
        countOld = count

print(answer)

Submission status: Accepted

Solution code:
# -*- coding: utf-8 -*-

# Input#
n = int(input())
# n, k = map(int, input().split())
a = list(map(int, input().split()))

ans = 0
max = 0
for i in range(n):
    if i == 0:
        max = a[i]
        continue

    if a[i] < max:
        ans += max - a[i]
    else:
        max = a[i]


print("{}".format(ans))

Submission status: Accepted

Solution code:
N = int(input())
A = list(map(int, input().split()))
temp = A[0]
sum = 0
for i in range(N):
    if A[i] <= temp:
        sum = sum + (temp - A[i])
    elif temp < A[i]:
        temp = A[i]
print(sum)

Submission status: Accepted

Solution code:
N=int(input())
arr=list(map(int,input().split()))

ans=0
for i in range(N-1):
    if arr[i]>arr[i+1]:
        ans+=arr[i]-arr[i+1]
        arr[i+1]=arr[i]

print(ans)

Submission status: Accepted

Solution code:
n = int(input())
A = [*map(int, input().split())]
s = 0
pre = A[0]
for now in A[1:]:
    if pre > now:
        s += pre-now
    else:
        pre = now
print(s)

Submission status: Accepted

Solution code:
n = int(input())
l = list(map(int,input().split()))

ans = 0

m = l[0]
for li in l[1:]:
  if li < m:
    ans +=m-li
  else:
    m = li

print(ans)

Submission status: Accepted

Solution code:
a = int(input())
b = list(map(int, input().split()))
c = b[0]
ans = 0
for i in range(a):
  if c >= b[i]:
    ans += c - b[i]
  else:
    c = b[i]
print(ans)

Submission status: Accepted

Solution code:
n = int(input())

a = list(map(int, input().split()))

count = 0
for i in range(1, n):
  if a[i-1] > a[i]:
    alpha = a[i-1] - a[i]
    a[i] = a[i] + alpha
    count = count + alpha 
  
print(count)

Submission status: Accepted

Solution code:
n=int(input())
l=list(map(int,input().split()))
# print(n,l)
step=0
max_temp=0
for i in range(len(l)-1):
    max_temp=max(max_temp,l[i])
    if max_temp>l[i+1]:
        step+=(max_temp-l[i+1])
print(step)

Submission status: Accepted

Solution code:
N = int(input())
A = list(map(int,input().split()))
ans = 0
now_max = 0
for i in A:
    now_max = max(i,now_max)
    ans += now_max - i
print(ans)

Submission status: Accepted

Solution code:
n=int(input())
arr=list(map(int,input().split()))
ans=0
for i in range(1,n):
	if(arr[i]<arr[i-1]):
		ans+=arr[i-1]-arr[i]
		arr[i]=arr[i-1]
		
print(ans)

Submission status: Accepted

Solution code:
n = int(input())
a = list(map(int,input().split()))
c = 0
for i in range(1,n):
  if a[i-1] > a[i]:
    b = a[i-1]-a[i]
    c += b
    a[i]=a[i-1]
print(c)

Submission status: Accepted

Solution code:
n = int(input())
a = list(map(int, input().split()))

level = 0
step = 0
for i in range(n):
  if level < a[i]:
    level = a[i]
  else:
    step += level - a[i]
print(step)

Submission status: Accepted

Solution code:
n = int(input())
a = list(map(int,input().split()))
m = a[0]
t = 0
for i in range(len(a)):
    if m > a[i]:
        t += m-a[i]
    if m < a[i]:
        m = a[i]
print(t)

Submission status: Accepted

Solution code:
N = int(input())
A = list(map(int,input().split()))
step = []
before = A[0]
for i in range(1, N):
   if A[i] - before >= 0:
      step.append(0)
      before = A[i]
   else:
      step.append(-A[i] + before)
ans = sum(step)   
print(ans)

Submission status: Accepted

Solution code:
from sys import exit, stdin

# import copy
# from collections import deque,Counter
# import numpy as np
input = stdin.readline


(N,) = map(int, input().split())

A = list(map(int, input().split()))

ans = 0
lmax = 0
for n in A:
    if n < lmax:
        ans += lmax - n
    else:
        lmax = n

print(ans)

Submission status: Accepted

Solution code:
N = int(input())
A = list(map(int,input().split()))

now_max = A[0]
ans = 0

for i in range(N):
  if A[i] > now_max:
    now_max = A[i]
  else:
    ans += now_max - A[i]
print(ans)

Submission status: Accepted

Solution code:
import sys
import bisect
import itertools
import collections
import fractions
import heapq
import math
from operator import mul
from functools import reduce
from functools import lru_cache


def solve():
    readline = sys.stdin.buffer.readline
    mod = 10 ** 9 + 7
    N = int(input())
    A = list(map(int, input().split()))
    A = collections.deque(A)

    count = 0
    dai = 0
    mae = 0
    while len(A) > 0:
        a = A.popleft()
        if a >= mae + dai:
            mae = a
            dai = 0
        else:
            dai = mae + dai - a
            mae = a
            count += dai
    print(count)





if __name__ == '__main__':
    solve()