这个代码怎么写?????????

#include<bits/stdc++.h>
using namespace std;
bool check(int mid){
int cnt=1,p=a[0];
for(int i=1;i<n;i++)
if(a[i]-p>=mid){
cnt++;
p=a[i];
}
return cnt>=m;
}
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)
scanf(“%d”,&a[i]);
sort(a,a+n);
int left=1,right=a[n-1]-a[0],mid;
while(left<right){
mid=(left+right+1)/2;
(left+right+1)/2;
if(check(mid))
left=mid;
else right=mid-1;
}
cout<<left;
return 0;
}

1 个赞

你要创建一大数组

const int MAXN = 100005;  
int a[MAXN]; 
int n, m;
1 个赞