题解——CF Manthan, Codefest 18 (rated, Div. 1 + Div. 2) T2(模拟)
题目要求很简单,做法很粗暴
直接扫一遍即可
注意结果会爆int
#include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using namespace std; long long ans=0,n,s,a[200010]; int main(){ scanf("%I64d %I64d",&n,&s); for(int i=1;i<=n;i++) scanf("%I64d",&a[i]); sort(a+1,a+n+1); int q=n/2+1; ans+=abs(a[q]-s); for(int i=1;i<=q-1;i++) if(a[i]>s) ans+=a[i]-s; for(int i=q+1;i<=n;i++) if(a[i]<s) ans+=s-a[i]; printf("%I64d",ans); return 0; }