#include using namespace std; // スタミナ1減らし 高度B上げ // 今の足場から隣に 高度が隣の足場の高さ未満の時無理 // 一回休憩してスタミナをS獲得 しかし高さはリセット int main(void){ // Your code here! int n,s,b,currentHigh,ss = 0; cin >> n >> s >> b; ss = s; 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 == h[i]) { ss = s; } i++; continue; } if(ss > 0){ if((currentHigh + ss * b) < h[i + 1]){ currentHigh = h[i]; ss = s; if(s * b < h[i + 1]){ cout << "No"; return 0; } } currentHigh += b; ss--; } else { currentHigh = h[i]; ss = s; if(s * b < h[i + 1]){ cout << "No"; return 0; } } } cout << "Yes"; }