| 比赛 |
果蝇王邀请赛div2 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
| 题目名称 |
果蝇诱饵 |
最终得分 |
100 |
| 用户昵称 |
123 |
运行时间 |
1.460 s |
| 代码语言 |
C++ |
内存使用 |
4.31 MiB |
| 提交时间 |
2026-08-27 09:31:49 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N=3e5+10,M=6e6+10;
int n,k,l,a[N];
priority_queue<int> q;
long long get(int x,int y)
{
return max(x,y)+1ll*(k-1)*(x+y);
}
void solve() {
cin>>n>>k>>l;
for (int i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+n+1);
for (int i=2;i<=n;i++) q.push(a[i]-a[i-1]);
int nowl=a[1],nowr=a[n],len=min(n-1,k);
long long ans=0,cnt=0;
for (int i=0;i<=len;i++)
{
if (k==0) ans=max(ans,cnt);
else ans=max(ans,cnt+get(nowl,l-nowr));
if (!q.empty())
{
int t=q.top();q.pop();
k--;
nowl+=t/2,nowr-=t/2,cnt+=t/2;
}
}
cout<<ans<<"\n";
}
int main() {
freopen("fly.in","r",stdin);
freopen("fly.out","w",stdout);
ios::sync_with_stdio(0),cin.tie(0);
int t;
cin>>t;
while (t--) solve();
return 0;
}