题解——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;
}

 

posted @ 2018-09-03 08:01  dreagonm  阅读(144)  评论(0编辑  收藏  举报