#include #include #include long long res; int n, a[200000]; std::multiset st; int main() { scanf("%d", &n); for(int i = 0; i < n; i++) scanf("%d", &a[i]); for(int l = 0, r = 0; l < n; res += r - l - 1, st.erase(st.lower_bound((a[l++])))) { while(r < n) { st.insert(a[r]); int tmp = *st.begin() + *(++st.begin()) - *st.rbegin(); if(tmp < 0) { st.erase(st.lower_bound(a[r])); break; } r++; } } printf("%lld\n", res); }