結果
| 問題 | No.2922 Rose Garden |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-10-12 17:03:28 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.89.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,179 bytes |
| 記録 | |
| コンパイル時間 | 467 ms |
| コンパイル使用メモリ | 63,872 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-10-12 17:03:58 |
| 合計ジャッジ時間 | 3,845 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 25 WA * 25 |
ソースコード
#include <iostream>
using namespace std;
// スタミナ1減らし 高度B上げ
// 今の足場から隣に 高度が隣の足場の高さ未満の時無理
// 一回休憩してスタミナをS獲得 しかし高さはリセット
int main(void){
// Your code here!
long int n,s,b,currentHigh,ss = 0;
cin >> n >> s >> b;
n = int(n);s = int(s);b = int(b);
ss = s;
long int h[n],i = 0;
for(int i = 0; i < n; i++)cin >> h[i];
currentHigh = h[0];
while(i < (n - 1)) {
if(currentHigh >= h[i + 1]){
if(currentHigh == int(h[i]) ) ss = s;
i++;
}
if(ss > 0){
currentHigh += b;
ss--;
}
else {
currentHigh = int(h[i]);
ss = s;
if((s * b + int(h[i])) < int(h[i + 1])){
cout << "No";
return 0;
}
}
if(currentHigh >= int(h[i + 1])){
if(currentHigh == int(h[i]) ) ss = s;
if(currentHigh == int(h[i + 1]) ) ss = s;
i++;
}
}
cout << "Yes";
}