由于原数列已有序,可直接在中间找中位数,平均数即为所有数的和除以

为偶数时,要取 的平均值。

这里的平均数和中位数在 为偶数时可能不为整数,需要特殊处理一下。

#include<bits/stdc++.h>
#define re register
using namespace std;
inline int read(){
    re int t=0;re char v=getchar();
    while(v<'0')v=getchar();
    while(v>='0')t=(t<<3)+(t<<1)+v-48,v=getchar();
    return t;
}
int n,ans,a[102];
signed main(){
    n=read();
    for(re int i=1;i<=n;++i)ans+=(a[i]=read());
    if(n&1)ans/=n,ans=abs(ans-a[n/2+1]);
    else ans*=2,ans/=n,ans-=a[n/2]+a[n/2+1],ans/=2,ans=abs(ans);
    printf("%d",ans);
}