0分求助
查看原帖
0分求助
1241058
TheGud楼主2024/4/24 21:18
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,m;
int arr[N];
bool cha(int x){
	if(x<arr[1]||x>arr[n]){
		return false; 
	}
	int l=1,r=n;
	while(l<r){
		int mid=l+r>>1;
		if(arr[mid]>=x) r=mid;
		else l=mid+1;
	}
	if(arr[l]==x) return true;
	else return false; 
}
int check(int x){
	int t=m-1,ans=arr[1];
	while(t--){
		if(cha(ans+x)){
			ans+=x;
		}
		else return 0; 
	}
	return 1;
}
int main() {
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>arr[i];
	sort(arr+1,arr+n+1);
	int l=1,r=n;
	while(l<r){
		int mid=l+r+1>>1;
		if(check(mid)) l=mid;
		else r=mid-1;
	} 
	cout<<l;
    return 0;
} 
2024/4/24 21:18
加载中...