40分,求助!
查看原帖
40分,求助!
907430
corner_xiejunqi楼主2024/7/30 11:34

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,c;
int address[N],ans;
int check(int mid){
	int last=0,sum=1;
	for(int i=1;i<=n;i++){
		if(address[i]-last>mid){
			sum++;
			last=address[i];
		}
	}
	return sum;
}
int main(){
	//1、声明变量,输入
	cin>>n>>c;
	for(int i=1;i<=n;i++){
		cin>>address[i];
	}
	sort(address+1,address+1+n);
	//2、计算过程
	int l=1,r=address[n]-address[1],mid;
	while(l<r){
		mid=(l+r+1)/2;
		int t=check(mid);
		if(t>=c){
			l=mid;
		}else{
			r=mid-1;
		}
	}
	//3、输出
	cout<<l;
	return 0;
}
2024/7/30 11:34
加载中...