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