#include<iostream>
#define ll long long
#define du double
#define for(i,st,ed,num) for(int i=st;i<ed;i+=num)
#define sc1(s,x) scanf(s,&x)
#define sc3(s,x,y,z) scanf(s,&x,&y,&z)
#define pr1(s,x) printf(s,x)
using namespace std;
const int N=100005;
int a[N];
int l,n,m;
bool Check(int num){
int g=0,t=0;
for(i,1,n+2,1){
t=a[i]-a[i-1];
if(t>num)g+=(t-1)/num;
}
if(g>m)return false;
else return true;
}
int main(){
sc3("%d%d%d",l,n,m);
for(i,1,n+1,1)sc1("%d",a[i]);
a[n+1]=l;
int st=0,ed=l,ans=0;
while(st<=ed){
int mid=(st+ed)/2;
if(Check(mid))ans=mid,ed=mid-1;
else st=mid+1;
}
pr1("%d\n",ans);
return 0;
}
评测状态:
