为什么错了,应怎么改,为什么n不能改为n+1
#include<bits/stdc++.h>
using namespace std;
int read(){
char c=getchar();
int f=1,x=0;
while(c<'0'||c>'9'){
if(c=='-'){
f=-1;
}
c=getchar();
}
while(c>='0'&&c<='9'){
x=(x<<3)+(x<<1)+(c^'0');
c=getchar();
}
return f*x;
}
//二分答案
const int N = 5e4+10;
int arr[N];
int L,n,m;
bool check(int x){
int now=0,cnt=0;
for(int i=1;i<=n;i++){//n->n+1?
if((arr[i]-now)>=x){
now=arr[i];
}else{
cnt++;
}
}
return cnt<=m;
}
int bsearch(int l,int r){
while(l<r){
int mid=(l+r+1)>>1;
if(check(mid)){
l=mid;
}else{
r=mid-1;
}
}
return l;
}
int main(){
cin>>L>>n>>m;
for(int i=1;i<=n;i++) cin>>arr[i];
cout<<bsearch(1,L);
return 0;
}