题意
给出一个长度为\(n\)的数组\(a\),你可以对这个数组进行任意次数如下操作:
选中数组中的任意数量的元素,取这些元素的平均值,然后将取出的这些元素中大于平均数的数字删掉。
问最多可以删掉多少个元素。
思路
找出数组中的最小值,只要是非最小值的元素和最小值取平均值,那么非最小值的元素一定是大于平均值的。
因此答案就是数组中元素的总数量减去数组中最小值的数量。
代码
#include <iostream>
const int N = 105;
int a[N];
void solve() {
int n;
std::cin >> n;
int minn = 0xff;
for (int i = 0; i < n; i++) {
std::cin >> a[i];
if (a[i] < minn) minn = a[i];
}
int cnt = 0;
for (int i = 0; i < n; i++) {
if (a[i] == minn) cnt++;
}
std::cout << n - cnt << std::endl;
}
int main() {
int T;
std::cin >> T;
while (T--) solve();
return 0;
}