#include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; #define rep(i,n,m) for(ll (i)=(n);(i)<(m);(i)++) #define rrep(i,n,m) for(ll (i)=(n);(i)>(m);(i)--) ll mmd(ll x){ x %= 998244353; if (x < 0) return x + 998244353; else return x; } vector dfs(ll v,ll p){ } int main(){ ll N; cin >> N; vector a(N); rep(i,0,N) cin >> a[i]; map s; s[a[0]] += 1; ll l; l = 0; // 次に削除する奴 ll ans = 0; rep(r,1,N){ s[a[r]] += 1; while (1){ ll m1,m2,M; M = s.rbegin()->first; m1 = s.begin()->first; if (s[m1] > 1){ m2 = m1; }else{ m2 = (++s.begin())->first; } //cout << l << " " << r << " " << m1 << " " << m2 << " " << M << endl; if (M <= m1 + m2) break; s[a[l]] -= 1; if (s[a[l]] == 0) s.erase(a[l]); l += 1; } ans += (r-l); } cout << ans << '\n'; }