30分 求调!!!
查看原帖
30分 求调!!!
1328264
wjy7777楼主2025/1/18 12:15

wa了7个点

#include<bits/stdc++.h>
using namespace std;
int a[100005],n,t,m=-1;
bool check(int s){
	int d=a[0];
	int sum=1;
	for (int i=1;i<n;i++){
		if (a[i]-d>=s){
			sum++;
			d=a[i];
		}
	}
	if (sum<=t){
		return true;
	}
	else{
		return false;
	}
}
int main(){
	cin>>n>>t;
	for (int i=0;i<n;i++){
		cin>>a[i];
		m=max(m,a[i]);
	}
	sort(a,a+n);
	int l=1,r=m,mid=0,ans=0;
	while(l<=r){
		mid=(l+r)/2;
		if (check(mid)){
			ans=mid;
			r=mid-1;
		}
		else{
			l=mid+1;
		}
	}
	cout<<ans;
	return 0;
}

2025/1/18 12:15
加载中...