/* ___________________________________________ */

#include <bits/stdc++.h>

using namespace std;
#define int long long 
#define fi first
#define se second
#define pushb push_back
#define SZ(v) (int)v.size()
#define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define debug cout << "NO ERROR"; exit(0);
#define endl "\n"
#define mapa(x, y) make_pair(x, y)
#define double long double
#define lb lower_bound
#define ub upper_bound
#define pii pair<int, int>
#define ALL(v) v.begin(), v.end()
#define BIT(x, i) (((x) >> (i)) & 1)

template<class X, class Y>
bool minimize(X &x, const Y &y) {
    if (x > y) {
        x = y;
        return true;
    }
    return false;
}

template<class X, class Y>
bool maximize(X &x, const Y &y) {
    if (x < y) {
        x = y;
        return true;
    }
    return false;
}

int lcm(int x, int y){
    return x / __gcd(x, y) * y;
}

const int INF = 1e18;
const double pi = acos(-1);
const int MOD = 1e9 + 7;
const int LimN = 3e3 + 5;
const int LimM = 1e5 + 5;
const double dist = 0.000001;
const int ADD = 96e3;

const int d4x[4] = {-1, 1, 0, 0};
const int d4y[4] = {0, 0, 1, -1};

int a[LimN];
int cost[LimN][LimN];


class SegmentTree {

private:
    int n;
    vector<int> v;

    void update(int id, int l, int r, int pos, int val) {
        if (pos < l || pos > r) return;

        if (l == r) {
            v[id] = val;
            return;
        }

        int mid = (l + r) / 2;

        update(id * 2, l, mid, pos, val);
        update(id * 2 + 1, mid + 1, r, pos, val);

        v[id] = min(v[id * 2], v[id * 2 + 1]);
    }

    int get(int id, int l, int r, int sta, int fin) {
        if (fin < l || r < sta) return INF;

        if (sta <= l && r <= fin) {
            return v[id];
        }

        int mid = (l + r) / 2;

        return min(
            get(id * 2, l, mid, sta, fin),
            get(id * 2 + 1, mid + 1, r, sta, fin)
        );
    }

public:
    SegmentTree(int _n) {
        n = _n;
        v.assign(n * 5 + 5, INF);
    }

    void update(int pos, int val) {
        update(1, 1, n, pos, val);
    }

    int get(int sta, int fin) {
        return get(1, 1, n, sta, fin);
    }
};



class SegmentTree2 {

private:
    int n;
    vector<int> v;

    void update(int id, int l, int r, int pos, int val) {
        if (pos < l || pos > r) return;

        if (l == r) {
            v[id] = val;
            return;
        }

        int mid = (l + r) / 2;

        update(id * 2, l, mid, pos, val);
        update(id * 2 + 1, mid + 1, r, pos, val);

        v[id] = max(v[id * 2], v[id * 2 + 1]);
    }

    int get(int id, int l, int r, int sta, int fin) {
        if (fin < l || r < sta) return -INF;

        if (sta <= l && r <= fin) {
            return v[id];
        }

        int mid = (l + r) / 2;

        return max(
            get(id * 2, l, mid, sta, fin),
            get(id * 2 + 1, mid + 1, r, sta, fin)
        );
    }

public:
    SegmentTree2(int _n) {
        n = _n;
        v.assign(n * 5 + 5, -INF);
    }

    void update(int pos, int val) {
        update(1, 1, n, pos, val);
    }

    int get(int sta, int fin) {
        return get(1, 1, n, sta, fin);
    }
};

void solve() {

    int n;
    cin >> n;

    SegmentTree IT(n);
    SegmentTree2 IT2(n);

    for (int i = 1; i <= n; i ++) {
        cin >> a[i];
        IT.update(i, a[i]);
        IT2.update(i, a[i]);
    }  



    int ans = 0;
    for (int i = 1; i <= n; i ++) {
        for (int j = i; j <= n; j ++) {
            int l = IT.get(i, j);
            int r = IT2.get(i, j);

            //cout << i << " " << j << " " << abs(r - l) << endl;

            ans += abs(r - l);
        }

    }

    cout << ans;

}

/* Authors: nguyen Hai Duong from le Do secondary school Da nang */

signed main() {
    #ifndef ONLINE_JUDGE
    freopen("ab.inp", "r", stdin);
    freopen("ab.out", "w", stdout);
    #else
    // freopen("task.inp", "r", stdin);
    // freopen("task.out", "w", stdout);
    #endif

    fast;

    int numtest = 1;
    // cin >> numtest;

    while (numtest--) {
        solve();
    }

    return 0;
}

// THIS IS DUONG's TEMPLATE &&09042012&&