#include <bits/stdc++.h>
using namespace std;
inline long long read() {
  long long X = 0, w = 0;
  char ch = 0;
  while (!isdigit(ch)) {
    w |= ch == '-';
    ch = getchar();
  }
  while (isdigit(ch)) {
    X = (X << 3) + (X << 1) + (ch ^ 48);
    ch = getchar();
  }
  return w ? -X : X;
}
char F[200];
inline void write(long long x) {
  if (x == 0) {
    putchar('0');
    return;
  }
  long long tmp = x > 0 ? x : -x;
  int cnt = 0;
  if (x < 0) putchar('-');
  while (tmp > 0) {
    F[cnt++] = tmp % 10 + '0';
    tmp /= 10;
  }
  while (cnt > 0) putchar(F[--cnt]);
}
const int N = 300000 + 2;
int n, pi;
long long ans;
priority_queue<int, vector<int>, greater<int> > Q;
int main() {
  n = read();
  for (register int i = 1; i <= n; ++i) {
    pi = read();
    if (!Q.empty() && (Q.top() < pi)) {
      ans += (pi - Q.top());
      Q.pop();
      Q.push(pi);
    }
    Q.push(pi);
  }
  write(ans), putchar('\n');
  return 0;
}
