题解B2095 白细胞计数

· · 题解

本蒟蒻的一篇题解

此题为模拟题,只需删去最大最小值,然后按题意模拟即可
AC代码如下,请勿抄袭(话说谁抄这种题的题解):

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
double a[520],sum,minn=99999999,maxn=-1,maxi,mini,maxd=-1;
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        minn=min(minn,a[i]);
        if(a[i]==minn){mini=i;}//确定最大值 
        maxn=max(maxn,a[i]);
        if(a[i]==maxn){maxi=i;}//确定最小值 
        sum+=a[i];
    }
    sum-=minn+maxn;
    printf("%.2lf ",sum/(n-2));
    for(int i=1;i<=n;i++){
        if(i!=mini&&i!=maxi){//排除最大最小值 
            maxd=max(maxd,fabs(a[i]-sum/(n-2)));
        }
    }
    printf("%.2lf",maxd);
    return 0;
}