#include 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"; }