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.

Solution in Java (OpenJDK 11.0.6) (judge verdict: Wrong Answer)

import java.util.Scanner;

/**
 * C - Step
 * N  人が 1 列に並んでおり、前から i 番目の人の身長は Ai です。
 * それぞれの人の足元に、高さが 0 以上の踏み台を設置し、全ての人が次の条件を満たすようにしたいです。
 * 条件：踏み台を込めて身長を比較したとき、自分より前に、自分より背の高い人が存在しない
 * この条件を満たす時の、踏み台の高さの合計の最小値を求めてください。
 */
public class Main {

    public static void main( String[] args ) {

        Scanner sc = new Scanner( System.in );
        // 入力値
        int n = sc.nextInt();
        int[] a = new int[n];

        int result = 0;
        int before = 0;
        for( int i = 0; i < n; i++ ) {
            a[i] = sc.nextInt();
            int add = 0;
            if( i > 0 && a[i] < a[i - 1] ) {
                add = before - a[i];
                result += add;
            }
            before = a[i] + add;
        }

        System.out.println( result );

        sc.close();
    }
}