比赛 果蝇王邀请赛div2 评测结果 AAAWWWWWWWWWAWAWWWWW
题目名称 果蝇诱饵 最终得分 25
用户昵称 rzzakioi 运行时间 1.424 s
代码语言 C++ 内存使用 5.37 MiB
提交时间 2026-08-27 09:17:05
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
using namespace std;
int t,a[200005],b[200005],n,k,l;
bool cmp(int x,int y){
    return x>y;
}
signed main(){
    freopen("fly.in","r",stdin);
    freopen("fly.out","w",stdout);
    scanf("%lld",&t);
    while(t--){
        scanf("%lld%lld%lld",&n,&k,&l);
        for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
        sort(a+1,a+n+1);
        for(int i=1;i<n;i++){
            b[i]=a[i+1]-a[i];
        }
        int ans=0,res=0;
        sort(b+1,b+n,cmp);
        int len=a[n]-a[1],lt=a[1],rt=l-a[n];
        for(int i=0;i<n;i++){
            len-=b[i];
            lt+=b[i]/2;
            rt-=b[i]/2;
            res+=b[i]/2;
            if(k<i)break;
            else if(k==i)ans=max(ans,res);
            else{
                ans=max(ans,res+max(lt,rt)+(k-i-1)*(l-len));
            }
        }
        printf("%lld\n",ans);
    }
    return 0;
}