#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 5;
int n, a[N], l1[N], r1[N], l2[N], r2[N];
stack<int> s;
int main()
{
cin.tie(0)->ios_base::sync_with_stdio(0);
cin >> n;
for (int i = 0; i < n; ++i) cin >> a[i];
for (int i = 0; i < n; ++i)
{
while (!s.empty() && a[s.top()] < a[i]) s.pop();
l1[i] = s.empty() ? -1 : s.top();
s.push(i);
}
while (!s.empty()) s.pop();
for (int i = n - 1; i >= 0; --i)
{
while (!s.empty() && a[s.top()] <= a[i]) s.pop();
r1[i] = s.empty() ? n : s.top();
s.push(i);
}
while (!s.empty()) s.pop();
for (int i = 0; i < n; ++i)
{
while (!s.empty() && a[s.top()] > a[i]) s.pop();
l2[i] = s.empty() ? -1 : s.top();
s.push(i);
}
while (!s.empty()) s.pop();
for (int i = n - 1; i >= 0; --i)
{
while (!s.empty() && a[s.top()] >= a[i]) s.pop();
r2[i] = s.empty() ? n : s.top();
s.push(i);
}
long long z = 0;
for (int i = 0; i < n; ++i)
{
long long mx = 1LL * (i - l1[i]) * (r1[i] - i);
long long mn = 1LL * (i - l2[i]) * (r2[i] - i);
z += a[i] * (mx - mn);
}
cout << z;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTiA9IDFlNiArIDU7CmludCBuLCBhW05dLCBsMVtOXSwgcjFbTl0sIGwyW05dLCByMltOXTsKc3RhY2s8aW50PiBzOwoKaW50IG1haW4oKSAKewoJY2luLnRpZSgwKS0+aW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbiA+PiBuOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIGNpbiA+PiBhW2ldOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIAogICAgewogICAgICAgIHdoaWxlICghcy5lbXB0eSgpICYmIGFbcy50b3AoKV0gPCBhW2ldKSBzLnBvcCgpOwogICAgICAgIGwxW2ldID0gcy5lbXB0eSgpID8gLTEgOiBzLnRvcCgpOwogICAgICAgIHMucHVzaChpKTsKICAgIH0KICAgIHdoaWxlICghcy5lbXB0eSgpKSBzLnBvcCgpOwogICAgZm9yIChpbnQgaSA9IG4gLSAxOyBpID49IDA7IC0taSkgCiAgICB7CiAgICAgICAgd2hpbGUgKCFzLmVtcHR5KCkgJiYgYVtzLnRvcCgpXSA8PSBhW2ldKSBzLnBvcCgpOwogICAgICAgIHIxW2ldID0gcy5lbXB0eSgpID8gbiA6IHMudG9wKCk7CiAgICAgICAgcy5wdXNoKGkpOwogICAgfQoKICAgIHdoaWxlICghcy5lbXB0eSgpKSBzLnBvcCgpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIAogICAgewogICAgICAgIHdoaWxlICghcy5lbXB0eSgpICYmIGFbcy50b3AoKV0gPiBhW2ldKSBzLnBvcCgpOwogICAgICAgIGwyW2ldID0gcy5lbXB0eSgpID8gLTEgOiBzLnRvcCgpOwogICAgICAgIHMucHVzaChpKTsKICAgIH0KICAgIHdoaWxlICghcy5lbXB0eSgpKSBzLnBvcCgpOwogICAgZm9yIChpbnQgaSA9IG4gLSAxOyBpID49IDA7IC0taSkgCiAgICB7CiAgICAgICAgd2hpbGUgKCFzLmVtcHR5KCkgJiYgYVtzLnRvcCgpXSA+PSBhW2ldKSBzLnBvcCgpOwogICAgICAgIHIyW2ldID0gcy5lbXB0eSgpID8gbiA6IHMudG9wKCk7CiAgICAgICAgcy5wdXNoKGkpOwogICAgfQoKICAgIGxvbmcgbG9uZyB6ID0gMDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSAKICAgIHsKICAgICAgICBsb25nIGxvbmcgbXggPSAxTEwgKiAoaSAtIGwxW2ldKSAqIChyMVtpXSAtIGkpOwogICAgICAgIGxvbmcgbG9uZyBtbiA9IDFMTCAqIChpIC0gbDJbaV0pICogKHIyW2ldIC0gaSk7CiAgICAgICAgeiArPSBhW2ldICogKG14IC0gbW4pOwogICAgfQoKICAgIGNvdXQgPDwgejsKfQo=