对于每一次翻越障碍,我们可以都+1,这样可以使翻越的障碍尽可能的多.

#include <bits/stdc++.h>

#define int long long
#define endl '\n'
[[maybe_unused]]const int INF = 1e16 + 50, N = 1e6 + 50;
[[maybe_unused]] typedef std::pair<int, int> pii;

void solve() {
    int n;
    std::cin >> n;
    std::vector<int> a(n, 0ll);
    for (int i = 0; i < n; i++) {
        std::cin >> a[i];
    }
    int cur = 0;
    for (int i = 0; i < n; i++) {
        if (a[i] - cur <= 1)
            cur++;
        else {
            std::cout << "NO" << endl;
            return;
        }
    }
    std::cout << "YES" << endl;
}

signed main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr), std::cout.tie(nullptr);
    int Lazy_boy_ = 1;
//    std::cin >> Lazy_boy_;
    while (Lazy_boy_--)
        solve();
    return 0;
}