#pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #ifdef local #include #else #define dump(...) void(0); #endif #include #include #include namespace man { } int main() { std::cin.tie(nullptr) -> sync_with_stdio(false); using namespace std::views; int n, s, b, hp, prev; std::cin >> n >> s >> b; int64_t alt = 0; hp = s; for(const auto i: iota(0, n)) { int h; std::cin >> h; if(i == 0) { alt = h; prev = h; continue; } const int need = std::max(0, std::ceil(1.0L * (h - alt) / b)); alt += std::min(hp, need) * b; hp -= need; if(alt < h) { alt = prev; hp = s; const int need = std::max(0, std::ceil(1.0L * (h - alt) / b)); alt += std::min(hp, need) * b; hp -= need; if(alt < h) { std::cout << "No\n"; std::exit(0); } } prev = h; } std::cout << "Yes\n"; }