比赛 果蝇王邀请赛div2 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 果蝇诱饵 最终得分 100
用户昵称 dream 运行时间 1.374 s
代码语言 C++ 内存使用 5.37 MiB
提交时间 2026-08-27 09:15:24
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=200005;
typedef long long ll;
int n;
ll k,l;
ll a[N];
bool cmp(ll x,ll y){
	return x>y;
}
void solve(){
    ll ans=0;
    cin>>n>>k>>l;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    if(n==1){
    	ans=max(a[1],l-a[n])+l*(k-1);
    	cout<<ans<<"\n";
    	return;
	}
    sort(a+1,a+n+1);
    vector<ll> b;
    for(int i=1;i<n;i++) b.push_back(a[i+1]-a[i]);
    sort(b.begin(),b.end(),cmp);
    ll sum=0;
    ans=max({b[0]/2,a[1],l-a[n]});
    for(int i=0;i<b.size();i++){
    	ll j=i+1;
    	sum+=b[i]/2;
    	if(k-j>=0){
    		ans=max({ans,sum+max(a[1],l-a[n])+sum+(a[1]+l-a[n]+2*sum)*(k-j-1)});
		}
		else break;
	}
	cout<<ans<<"\n";
}
int main(){
	freopen("fly.in","r",stdin);
	freopen("fly.out","w",stdout);
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int t;
    cin>>t;
    while(t--) solve();
    return 0;
}