| 比赛 |
果蝇王邀请赛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;
}