可爱lsd刚学跳石头求带OwO
#include<bits/stdc++.h>
using namespace std;
struct FZD{
int lastnum;
int nowdis;
int nextnum;
}a[500000+2];
bool cmp(FZD a,FZD b)
{
return a.nowdis<b.nowdis;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int l,m,n;
cin>>l>>n>>m;
for(int i=1;i<n;i++)
{
a[i].lastnum=i-1;
a[i].nextnum=i+1;
cin>>a[i].nowdis;
a[i].nowdis-=a[a[i].lastnum].nowdis;
}
cin>>a[n].nowdis;
a[n+1].lastnum=n;
a[n+1].nowdis=l-a[n].nowdis;
a[n+1].nextnum=n+2;
a[n].lastnum=n-1;
a[n].nextnum=n+1;
a[n].nowdis-=a[a[n].lastnum].nowdis;
sort(a+1,a+2+n,cmp);
for(int i=1;i<=m;i++)
{
a[a[i].nextnum].nowdis=a[i].nowdis+a[a[i].lastnum].nowdis;
a[i].nowdis=0x3f3f3f3f3f;
}
sort(a+1,a+2+n,cmp);
cout<<a[1].nowdis-1;
return 0;
}