#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
vector<int> arr(n);
for(int i=0;i<n;i++){
cin>>arr[i];
}
vector<int> prefix(n,0);
vector<int> suffix(n,0);
// Count descending steps leading into index i+1
for(int i=0;i<n-1;i++){
if(arr[i+1]<arr[i]){
if(i==0){
prefix[i]=1;
}
else{
prefix[i]=prefix[i-1]+1;
}
}
else{
prefix[i]=0;
}
}
// Count ascending steps extending forward from index i
for(int i=n-2;i>=0;i--){
if(arr[i]<arr[i+1]){
suffix[i]=suffix[i+1]+1;
}
else{
suffix[i]=0;
}
}
long long ans=0;
for(int i=1;i<n-1;i++){
// prefix[i-1] is dec steps into i; suffix[i] is inc steps out of i
long long k = 1LL * prefix[i-1] * suffix[i];
ans = ans + k;
}
cout<<ans<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4gCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CglpbnQgbjsKCWNpbj4+bjsKCXZlY3RvcjxpbnQ+IGFycihuKTsKCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCWNpbj4+YXJyW2ldOwoJfQoJCgl2ZWN0b3I8aW50PiBwcmVmaXgobiwwKTsKCXZlY3RvcjxpbnQ+IHN1ZmZpeChuLDApOwoKCS8vIENvdW50IGRlc2NlbmRpbmcgc3RlcHMgbGVhZGluZyBpbnRvIGluZGV4IGkrMQoJZm9yKGludCBpPTA7aTxuLTE7aSsrKXsKCQlpZihhcnJbaSsxXTxhcnJbaV0pewoJCQlpZihpPT0wKXsKCQkJCXByZWZpeFtpXT0xOwoJCQl9CgkJCWVsc2V7CgkJCQlwcmVmaXhbaV09cHJlZml4W2ktMV0rMTsKCQkJfQoJCX0KCQllbHNlewoJCQlwcmVmaXhbaV09MDsKCQl9Cgl9CgkKCS8vIENvdW50IGFzY2VuZGluZyBzdGVwcyBleHRlbmRpbmcgZm9yd2FyZCBmcm9tIGluZGV4IGkKCWZvcihpbnQgaT1uLTI7aT49MDtpLS0pewoJCWlmKGFycltpXTxhcnJbaSsxXSl7CgkJCXN1ZmZpeFtpXT1zdWZmaXhbaSsxXSsxOwoJCX0KCQllbHNlewoJCQlzdWZmaXhbaV09MDsKCQl9Cgl9CgoJbG9uZyBsb25nIGFucz0wOwoJCglmb3IoaW50IGk9MTtpPG4tMTtpKyspewoJCS8vIHByZWZpeFtpLTFdIGlzIGRlYyBzdGVwcyBpbnRvIGk7IHN1ZmZpeFtpXSBpcyBpbmMgc3RlcHMgb3V0IG9mIGkKCQlsb25nIGxvbmcgayA9IDFMTCAqIHByZWZpeFtpLTFdICogc3VmZml4W2ldOwoJCWFucyA9IGFucyArIGs7Cgl9Cgljb3V0PDxhbnM8PGVuZGw7CgkKCXJldHVybiAwOwp9