思路:我们先对数组从小到大排序,然后从后往前遍历,如果此时后面的人的平均财富<x,那么就退出
以下是代码实现:
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void solved()
{
int n,d;
cin>>n>>d;
vector<int>vt;
for(int i=0;i<n;i++)
{
int a=0;
cin>>a;
vt.push_back(a);
}
sort(vt.begin(),vt.end());
long long sum=0,ans=0;
for(int i=vt.size()-1;i>=0;i--)
{
sum+=vt[i];
if((sum/(n-i))>=d)
{
ans++;
}
else break;
}
cout<<ans<<endl;
return ;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int t;
cin>>t;
while(t--)
{
solved();
}
return 0;
}