// #include<bits/stdc++.h>
// using namespace std;
// #define int long long
// #define MAX 1e6+1
// class disjointSet{
// vector<int> rank,parent,size;
// public:
// disjointSet(int n){
// rank.resize(n+1,0);//for both 0based and 1 based indexing
// parent.resize(n+1);
// size.resize(n+1);
// for(int i=0;i<=n;i++){
// parent[i]=i;
// size[i]=1;
// }
// }
// int findupar(int node){//finds the ultimate parent//O(4alpha)==constant
// if(node==parent[node]){
// return node;
// }
// else{
// return parent[node]=findupar(parent[node]);
// }
// }
// void unionbyrank(int u,int v){//O(4alpha)==constant
// int ulpu=findupar(u);
// int ulpv=findupar(v);
// if(ulpv==ulpu){
// return;
// }
// if(rank[ulpu]<rank[ulpv]){
// parent[ulpu]=parent[ulpv];
// }
// else if(rank[ulpu]>rank[ulpv]){
// parent[ulpv]=parent[ulpu];
// }
// else{
// parent[ulpv]=parent[ulpu];
// rank[ulpu]++;
// }
// }
// void unionbysize(int u,int v){//O(4alpha)==constant
// int ulpu=findupar(u);
// int ulpv=findupar(v);
// if(ulpv==ulpu){
// return;
// }
// if(size[ulpu]<size[ulpv]){
// parent[ulpu]=ulpv;
// size[ulpv]+=size[ulpu];
// }
// else{
// parent[ulpv]=ulpu;
// size[ulpu]+=size[ulpv];
// }
// }
// };
// bool cmp(const pair<int, int>& a,const pair<int, int>& b){
// if (a.first != b.first)
// return (a.first < b.first);
// else
// return (a.second > b.second);
// }
// int mod_power(int x,int y,int m){//for calculating inverse through this check that m is prime x is indivisible by m and then a^(m-2)mod m=(a^-1)mod m
// int res=1;//put y=m-2 to get inverse mod
// while(y>0){
// if(y%2==1){
// res=(res*1LL*x)%m;
// y--;
// }
// else{
// x=(x*1LL*x)%m;
// y/=2;
// }
// }
// return res;
// }
// //vector<int> prime(MAX);
// //void SieveOfEratosthenes(){
// //prime[0]=1;
// //for(int i=0;i<MAX;i++){
// //prime[i]=1;
// //}
// //for (int p = 2; p * p <= MAX; p++) {
// //if (prime[p] == true) {
// //for (int i = p * p; i <= MAX; i += p)
// //prime[i] = false;
// //}
// //}
// //}
// //vector<int> smp(MAX);
// //void spf(){
// // smp[0]=1;
// // for(int i=1;i<MAX;i++){
// // smp[i]=i;
// // }
// // for(int i=2;i*i<MAX;i++){
// // if(smp[i]==i){
// // for(int k=i*i;k<MAX;k=k+i){
// // if(smp[k]==k){
// // smp[k]=i;
// // }
// // }
// // }
// // }
// //}
// signed main(){
// ios_base::sync_with_stdio(false);
// cin.tie(NULL);
// int t;
// cin>>t;
// for(int j=0;j<t;j++){
// int n,c;
// cin>>n>>c;
// vector<int> vec(n);
// int sum=0;
// for(int i=0;i<n;i++){
// cin>>vec[i];
// sum+=vec[i];
// }
// if(sum<n*c){
// cout<<"No"<<endl;
// continue;
// }
// set<pair<int,int>> s;
// for(int i=0;i<n;i++){
// s.insert({i+1,vec[i]});
// }
// int k=n-1;
// bool flag=true;
// while(s.size()>1){
// auto it=s.begin();
// auto it1=s.end();
// it1--;
// it=it1;
// it1--;
// k=it1->first;
// if(k*c<=sum-it->second){
// s.erase(it);
// sum-=it->second;
// }
// else{
// it1++;
// k=it1->first;
// it--;
// if(k*c<=sum-it->second){
// s.erase(it);
// sum-=it->second;
// }
// else{
// flag=false;
// break;
// }
// }
// }
// if(flag){
// cout<<"Yes"<<endl;
// }
// else{
// cout<<"No"<<endl;
// }
// }
// return 0;
// }
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define MAX 1e6+1
class disjointSet{
vector<int> rank,parent,size;
public:
disjointSet(int n){
rank.resize(n+1,0);//for both 0based and 1 based indexing
parent.resize(n+1);
size.resize(n+1);
for(int i=0;i<=n;i++){
parent[i]=i;
size[i]=1;
}
}
int findupar(int node){//finds the ultimate parent//O(4alpha)==constant
if(node==parent[node]){
return node;
}
else{
return parent[node]=findupar(parent[node]);
}
}
void unionbyrank(int u,int v){//O(4alpha)==constant
int ulpu=findupar(u);
int ulpv=findupar(v);
if(ulpv==ulpu){
return;
}
if(rank[ulpu]<rank[ulpv]){
parent[ulpu]=parent[ulpv];
}
else if(rank[ulpu]>rank[ulpv]){
parent[ulpv]=parent[ulpu];
}
else{
parent[ulpv]=parent[ulpu];
rank[ulpu]++;
}
}
void unionbysize(int u,int v){//O(4alpha)==constant
int ulpu=findupar(u);
int ulpv=findupar(v);
if(ulpv==ulpu){
return;
}
if(size[ulpu]<size[ulpv]){
parent[ulpu]=ulpv;
size[ulpv]+=size[ulpu];
}
else{
parent[ulpv]=ulpu;
size[ulpu]+=size[ulpv];
}
}
};
bool cmp(const pair<int, int>& a,const pair<int, int>& b){
if (a.first != b.first)
return (a.first < b.first);
else
return (a.second > b.second);
}
int mod_power(int x,int y,int m){//for calculating inverse through this check that m is prime x is indivisible by m and then a^(m-2)mod m=(a^-1)mod m
int res=1;//put y=m-2 to get inverse mod
while(y>0){
if(y%2==1){
res=(res*1LL*x)%m;
y--;
}
else{
x=(x*1LL*x)%m;
y/=2;
}
}
return res;
}
//vector<int> prime(MAX);
//void SieveOfEratosthenes(){
//prime[0]=1;
//for(int i=0;i<MAX;i++){
//prime[i]=1;
//}
//for (int p = 2; p * p <= MAX; p++) {
//if (prime[p] == true) {
//for (int i = p * p; i <= MAX; i += p)
//prime[i] = false;
//}
//}
//}
//vector<int> smp(MAX);
//void spf(){
// smp[0]=1;
// for(int i=1;i<MAX;i++){
// smp[i]=i;
// }
// for(int i=2;i*i<MAX;i++){
// if(smp[i]==i){
// for(int k=i*i;k<MAX;k=k+i){
// if(smp[k]==k){
// smp[k]=i;
// }
// }
// }
// }
//}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t;
cin>>t;
for(int j=0;j<t;j++){
int n,c;
cin>>n>>c;
vector<int> vec(n),pre(n);int tot=0;
for(int i=0;i<n;i++){
cin>>vec[i];
tot+=vec[i];
pre[i]=tot;
}
bool flag=true;
int ans=0;
// for(int i=n-1;i>=1;i--){
// if(vec[i]+vec[0]>=(i+1)*c){
// ans=i;
// }
// }
int sum=vec[0];
// for(int i=0;i<=ans;i++){
// sum+=vec[i];
// }
while(ans<n-1){
int l=ans;
for(int i=ans+1;i<n;i++){
if(sum+vec[i]>=(i+1)*c){
ans=i;
break;
}
}
if(ans==l){
flag=false;
break;
}
else{
sum=pre[ans];
}
}
if(flag){
cout<<"Yes"<<endl;
}
else{
cout<<"No"<<endl;
}
}
return 0;
}
729D - Sea Battle | 788A - Functions again |
1245B - Restricted RPS | 1490D - Permutation Transformation |
1087B - Div Times Mod | 1213B - Bad Prices |
1726B - Mainak and Interesting Sequence | 1726D - Edge Split |
1726C - Jatayu's Balanced Bracket Sequence | 1726A - Mainak and Array |
1613C - Poisoned Dagger | 475B - Strongly Connected City |
652B - z-sort | 124B - Permutations |
1496C - Diamond Miner | 680B - Bear and Finding Criminals |
1036E - Covered Points | 1015D - Walking Between Houses |
155B - Combination | 1531A - Зингер | color |
1678A - Tokitsukaze and All Zero Sequence | 896A - Nephren gives a riddle |
761A - Dasha and Stairs | 1728B - Best Permutation |
1728A - Colored Balls Revisited | 276B - Little Girl and Game |
1181A - Chunga-Changa | 1728C - Digital Logarithm |
1728D - Letter Picking | 792B - Counting-out Rhyme |