#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int N,M,num,a[1000000];
long long L,ans;
int main(){
cin>>L>>N>>M;
for(int i=0;i<N;i++)cin>>a[i];
for(int i=N-1;i>0;i--)a[i]-=a[i-1];
long long low=0,high=L,mid;
while(low<=high){
mid=low+(high-low)/2;
//判断该值可不可行
num=0;
for(int i=0;i<N;i++){
if(a[i]<mid){
a[i+1]+=a[i];num++;
}
if(num>M)break;
}
if(num>M)high=mid-1;
else low=mid;
}
cout<<high<<endl;
return 0;
}
大佬们,帮帮忙吧,改了好久了,还是找通不过,,我太菜了。。。