#include using namespace std; constexpr int Inf = 2000000000; constexpr long long INF= 2000000000000000000; template inline bool chmax(T &a, T b) { if (a < b) { a = b; return true; } return false; } template inline bool chmin(T &a, T b) { if (a > b) { a = b; return true; } return false; } template T modpow(T N, U P, T M = -1) { if(P < 0) return 0; T ret = 1; if(M != -1) ret %= M; while(P) { if(P & 1) { if(M == -1) ret *= N; else ret = ret * N % M; } P /= 2; if(M == -1) N *= N; else N = N * N % M; } return ret; } template struct FixPoint : F { template FixPoint(G&& g) : F{std::forward(g)} {} template decltype(auto) operator()(Args&&... args) const { return F::operator()(*this, std::forward(args)...); } }; #if defined(__cpp_deduction_guides) template FixPoint(F&&) -> FixPoint>; #endif // defined(__cpp_deduction_guides) template inline FixPoint> fix(F&& f) { return std::forward>(f); } constexpr long long MOD = 998244353; int main() { int n; cin >> n; vector vec(n); for(auto& x: vec) cin >> x; vector diff(n - 1); for(int i = 0;i < n - 1;i++) { diff[i] = vec[i + 1] - vec[i]; } diff.push_back(0); long long ret = 0; long long now = 0; for(int i = 0;i < n ;i++) { if(diff[i] == 1) now++; else { ret += now * (now + 1) / 2; now = 0; } } cout << ret << endl; }