考虑到答案满足可二分性,段内可以贪心,所以暴力二分即可
注意-1
详见代码(我这题都能写WA)
#include <bits/stdc++.h>
using namespace std;
int l,n,k,a[100005];
int main() {
ios::sync_with_stdio(false);
cin>>l>>n>>k;
for(int i=1;i<=n;i++) cin>>a[i];
int L=0,R=l+1;
while(L<R) {
int mid=(L+R)/2,ans=0;
for(int i=2;i<=n;i++) {
ans+=(a[i]-a[i-1]-1)/mid; //!
}
if(ans>k) L=mid+1;
else R=mid;
}
cout<<L;
}