题解 CF1529A Eshag Loves Big Arrays

· · 题解

考虑贪心的思想,我们可以发现除了最小值以外的数都可以被删去,只需要把它与最小值单独组成个子序列,这个数一定严格大于子序列的平均值。即对于所有的 a_i\not= min,都有 \dfrac{min+a_i}{2}<a_i。那么答案就是除去最小值以外的数的个数啦!

code:

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;

const int N=110;

int t,n,ans;
int a[N],minn;

int main(){
    scanf("%d",&t);
    while(t--){
        ans=0;minn=0x7ffffff;
        scanf("%d",&n);
        for(int i=1;i<=n;++i){
            scanf("%d",&a[i]);
            if(a[i]<minn){
                minn=a[i];ans=1;
            }else if(a[i]==minn)++ans;
        }
        printf("%d\n",n-ans);
    }
    return 0;
}