死循环了,但是找不到原因,求助
马蜂不喜勿喷
#include<bits/stdc++.h>
using namespace std;
int n,m,a[100005];
int l=1,r=1e9,mid,ans;
bool check(int x)
{
int cnt=1,res=1;
for(int i=2;i<=n;i++)
{
if(a[i]-res>=x)
{
res=a[i];
cnt++;
}
}
return cnt>=m;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
sort(a+1,a+n+1);
while(l<=r)
{
mid=(r-l)/2+1;
if(check(mid))
{
ans=mid;
l=mid+1;
}
else
r=mid-1;
}
cout<<ans;
return 0;
}