結果
問題 |
No.2922 Rose Garden
|
ユーザー |
|
提出日時 | 2024-10-14 11:42:02 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,181 bytes |
コンパイル時間 | 2,124 ms |
コンパイル使用メモリ | 119,508 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-14 11:42:06 |
合計ジャッジ時間 | 4,103 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 25 WA * 25 |
ソースコード
#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 <C++/core/io/debug_print.hpp> #else #define dump(...) void(0); #endif #include <iostream> #include <ranges> #include <cmath> 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<int>(0, std::ceil(1.0L * (h - alt) / b)); alt += std::min<int64_t>(hp, need) * b; hp -= need; if(alt < h) { alt = prev; hp = s; const int need = std::max<int>(0, std::ceil(1.0L * (h - alt) / b)); alt += std::min<int64_t>(hp, need) * b; if(alt < h) { std::cout << "No\n"; std::exit(0); } } prev = h; } std::cout << "Yes\n"; }