#include <bits/stdc++.h>
using namespace std;
int main() {
  int t;
  cin >> t;
  while (t-- > 0) {
    int n, start_cubes, h_delta;
    cin >> n >> start_cubes >> h_delta;
    vector<int> h(n);
    for (int i = 0; i < n; ++i) {
      cin >> h[i];
    }
    int cur_cubes = start_cubes;
    bool impossible = false;
    for (int i = 1; !impossible && i < n; ++i) {
      if (h[i] - h_delta > h[i - 1]) {
        cur_cubes -= (h[i] - h_delta) - h[i - 1];
      } else {
        cur_cubes += min(h[i - 1], h[i - 1] - (h[i] - h_delta));
      }
      if (cur_cubes < 0) {
        cout << "No\n";
        impossible = true;
      }
    }
    if (!impossible) {
      cout << "Yes\n";
    }
  }
  return 0;
}
