不知为什么,晚辈的代码竟然是TLE,烦请各位大佬指教指教
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int n,c,a[N],ans;
bool check(int x) {
int s = 1,lastbay = 1;
for(int i = 2;i<=n;i++){
if(a[i]-a[lastbay]>=x){
s++;
lastbay = i;
}
}
return s>=c;
}
int main() {
scanf("%d%d",&n,&c);
for(int i = 1; i<=n; i++) {
scanf("%d",&a[i]);
}
sort(a+1,a+n+1);
int l = 1,r = a[n];
while(l<=r) {
int mid = l+(l-r)/2;
if(check(mid)) {
ans = mid;
l = mid+1;
} else {
r = mid-1;
}
}
printf("%d",ans);
return 0;
}
帮我者,必一生平安也