#include <bits/stdc++.h>
using namespace std;
const long long MaxN = 1e6 + 5;
long long n, a[MaxN], res=0;
stack<long long> st;
int main()
{
    freopen("file.inp", "r", stdin);
    freopen("file.ans", "w", stdout);
    cin >> n;
    for (long long i=1; i<=n; i++)
    {
        cin >> a[i];
        vector<long long> v;
        while(!st.empty() && a[i]>a[st.top()])
        {
            v.push_back(a[st.top()]);
            st.pop();
        }
        v.push_back(a[i]);
        for (long long j=0; j<v.size()-1; j++)
        {
            res+=v[j+1]-v[j];
        }
        st.push(i);
            a[n+1]=max(a[n+1],a[i]);
    }
    vector<long long > v;
    while(!st.empty()&&a[n+1]>a[st.top()])
    {
        v.push_back(a[st.top()]);
        st.pop();
    }
    v.push_back(a[n+1]);
    for (long long i=0; i<v.size()-1; i++) res+=v[i+1]-v[i];
    cout << res;
}
