由于原数列已有序,可直接在中间找中位数,平均数即为所有数的和除以 。
当 为偶数时,要取
和
的平均值。
这里的平均数和中位数在 为偶数时可能不为整数,需要特殊处理一下。
#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);
}


京公网安备 11010502036488号