这里主要记录一下这个写的很简单的check函数
#include<bits/stdc++.h> using namespace std; int len,n,m; const int N=5e4+3; int d[N],ans; int main() { scanf("%d%d%d",&len,&n,&m); for(int i=1; i<=n; i++) scanf("%d",&d[i]); d[++n]=len; //work int l=0,r=len; while(l<=r) { int mid=(l+r)>>1; int nw=0,check=0; for(int i=1; i<=n && check<=m ; i++) if(d[i]-d[nw]<mid) check++; else nw=i; if(check <= m ) ans=mid,l=mid+1; else r=mid-1; } //output printf("%d\n",ans); return 0; }