CF1529-A. Eshag Loves Big Arrays

题意

给出一个长度为\(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;
}
上一篇:HEOI2016 序列


下一篇:查询 Oralce 某 schema 所拥有的权限