#include <bits/stdc++.h>
using namespace std;
mt19937 mrand(random_device{}());
const long long int MOD = 1e9 + 7;
const long long int mod = 1e9 + 7;
const long long int N = (long long int)(1e6 + 1);
int rnd(int x) { return mrand() % x; }
long long int powmod(long long int a, long long int b) {
  long long int res = 1;
  a %= mod;
  assert(b >= 0);
  for (; b; b >>= 1) {
    if (b & 1) res = res * a % mod;
    a = a * a % mod;
  }
  return res;
}
long long int gcd(long long int a, long long int b) {
  return b ? gcd(b, a % b) : a;
}
long long int add(long long int a, long long int b) {
  return ((a % MOD) + (b % MOD)) % MOD;
}
long long int mul(long long int a, long long int b) {
  return ((a % MOD) * (b % MOD)) % MOD;
}
long long int sub(long long int a, long long int b) {
  return ((a % MOD) - (b % MOD) + MOD) % MOD;
}
long long int binpow(long long int x, long long int y) {
  long long int z = 1;
  while (y) {
    if (y & 1) z = mul(z, x);
    x = mul(x, x);
    y >>= 1;
  }
  return z;
}
long long int inv(int x) { return binpow(x, MOD - 2); }
long long int divide(long long int x, long long int y) {
  return mul(x, inv(y));
}
long long int fact[N];
void precalc() {
  fact[0] = 1;
  for (long long int i = 1; i < N; i++) fact[i] = mul(fact[i - 1], i);
}
long long int C(long long int n, long long int k) {
  return divide(fact[n], mul(fact[k], fact[n - k]));
}
long long int legendpow(long long int n, long long int p) {
  long long int total = 0;
  while (n) {
    n /= p;
    total += n;
  }
  return total;
}
int main() {
  int n;
  cin >> n;
  int a[n];
  int sum = 0;
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 1; i < n; i++) {
    if (a[i] < a[i - 1]) {
      sum += (a[i - 1] - a[i]);
      a[i] = a[i - 1];
    }
  }
  cout << sum;
}
