ACM 训练日志记录 · 思考 · 成长 提交 / 修改记录
郭一鸣 / 题目列表训练档案
导出

2245B Codeforces Round 1110, Div. 1 + Div. 2

来源:Codeforces ★ 1100

本题活力0.23按难度、完成结果与训练证据估算

算法如山行则将至

题目描述

删除所有数,有两种方式:1是单个删,得到ai-c分;2是配对删,得到max(ai,aj)-c分,问最大分数?

代码

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        long long c;
        cin>>n>>c;
        long long a[200010];
        long long ans=0;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
            ans+=a[i]-c;
        }
        sort(a+1,a+n+1);
        for(int i=1;i<=n/2;i++)
        {
            if(a[i]<c)
            {
                ans+=c-a[i];
            }
        }
        cout<<ans<<endl;
    }
    return 0;
}