比赛 果蝇王邀请赛div2 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 果蝇诱饵 最终得分 100
用户昵称 彭欣越 运行时间 1.379 s
代码语言 C++ 内存使用 5.19 MiB
提交时间 2026-08-27 09:56:58
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=200010,mod=1e9+7;
int T;
ll n,k,l,a[N],c[N];
int main () {
    freopen("fly.in","r",stdin);
    freopen("fly.out","w",stdout);
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    cin >> T;
    while (T--) {
        cin >> n >> k >> l;
        for (int i=1;i<=n;i++) {
            cin >> a[i];
        }
        sort(a+1,a+1+n);
        for (int i=2;i<=n;i++) {
            c[i]=a[i]-a[i-1];
        }
        sort(c+2,c+1+n);
        ll ans=max(a[1],l-a[n])+(k-1)*(l-a[n]+a[1]);
        ll sum=0;
        for (int i=1;i<min(k+1,n);i++) {
            sum+=c[n-i+1]/2;
            if (i==k) {
                ans=max(ans,sum);
            }else if (i==k-1) {
                ans=max(ans,sum+max(a[1]+sum,l-a[n]+sum));
            }else{
                ans=max(ans,sum+max(a[1]+sum,l-a[n]+sum)+(k-i-1)*(l-a[n]+a[1]+2*sum));
            }
        }
        cout << ans <<endl;
    }
    return 0; 
}