比赛 果蝇王邀请赛div2 评测结果 WAWWWWWWWWWWWWWWWWWW
题目名称 果蝇诱饵 最终得分 5
用户昵称 yanglich 运行时间 2.701 s
代码语言 C++ 内存使用 4.02 MiB
提交时间 2026-08-27 11:55:05
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int t,n,a[200005],c[200005],k,l,ans;
//vector<int>g,f;
//void dfs(int d,int sum,int h[]){
//    for(int j=1;j<=n;j++){
//        cout<<h[j]<<" ";
//    } 
//    cout<<"\n";
//    cout<<d<<"---"<<sum<<"\n";
//    if(d==k){
//        if(sum>ans){
//            ans=sum;
//            f=g;
//        }
//        return;
//    }
//    for(int i=0;i<=l;i++){
//        int mi=1e9;
//        for(int j=1;j<=n;j++){
//            cout<<h[j]<<"* ";
//            mi=min(mi,abs(i-h[j]));
//        }
//        for(int j=1;j<=n;j++){
//            if(h[j]<i)h[j]+=mi;
//            else h[j]-=mi;
//        } 
//        g.push_back(i);
//        cout<<i<<' '<<mi<<"$\n";
//        dfs(d+1,sum+mi,h);
//        g.pop_back();
//        for(int j=1;j<=n;j++){
//            if(h[j]<i)h[j]-=mi;
//            else h[j]+=mi;
//        }
//    }
//}
void solve(){
    cin>>n>>k>>l;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    if(n==1){
        ans=max(l-a[1],a[1]);
        ans+=l*(k-1);
        cout<<ans<<"\n";
        return;
    }
    sort(a+1,a+n+1);
    if(k==1){
        int p=0;
        for(int i=1;i<=n;i++){
            p=max(a[i]-a[i-1],p);
        }  
        cout<<max(p/2,max(a[1],l-a[n]))<<"\n";
        return;
    }
//    dfs(0,0,a);
//    cout<<ans<<"---------\n";
//    for(int i=0;i<f.size();i++){
//        cout<<f[i]<<" ";
//    }
//    cout<<"\n";
}
int main(){
    freopen("fly.in","r",stdin);
    freopen("fly.out","w",stdout);
    cin>>t;
    while(t--){
        solve();
    }
    return 0;
}