60分 #3~#6RE
查看原帖
60分 #3~#6RE
1038838
张一2010楼主2024/8/23 17:44
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,ch[102]/*cow's house*/;
bool check(int *z,int n,int m,int l){
	int sum=1,last=z[1];
	for(int i=2;i<=n&&sum<=m;i++){
		if(z[i]-last<l) continue;
		sum++,last=z[i];
	}
	return sum>=m;
}
int bin(int *z,int n,int m){
	int l=1,r=z[n],mid;
	while(l<r){  //1100
		mid=(l+r+1)/2;
		if(check(z,n,m,mid)) l=mid;
		else r=mid-1;
	}
	return l;
}

int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>ch[i];
	sort(ch+1,ch+1+n);
	cout<<bin(ch,n,m);
}
2024/8/23 17:44
加载中...