#include <bits/stdc++.h>
#include <queue>
using namespace std;
using ll = long long;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        ll n,k;
        cin>>n>>k;
        ll sum = 0;//定义sum变量来储存且士兵的总攻击值
        priority_queue<ll>q;
        while(n--){
            int w;
            cin>>w;
            sum+=w;
            q.push(w);
        }
        ll h,x;
        cin>>h>>x;//先计算攻击血量
        ll time = 0;
        while(true){
        if(sum>=k){
                h-=k;//如果总攻击值大于k,我们血量就减少k,因为k是每秒最大的攻击总值
                time++;//时间+1
        }
        else {//否则的话就是血量减去总攻击力
            h-=sum;
            time++;
        }
        if(time%x==0&&time>0){
     		//总攻击力也要减少
            sum-=q.top();
		  //如果时间够了就杀是攻击力最高的企鹅士兵——因为采取最优解
            q.pop();
        }
        if(h<0){
            cout<<"YES"<<endl;
            break;
        }
        if(q.empty()&&h>=0){
            cout<<"NO"<<endl;
            break;
        }
        }
    }

    return 0;
}