求助
  • 板块题目总版
  • 楼主rainfox
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/19 13:47
  • 上次更新2024/3/19 18:02:33
查看原帖
求助
1033626
rainfox楼主2024/3/19 13:47

题目

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5; 
int n,m;
int a[maxn];
bool check(int k){
	int x=1,sum=0;
	for(int i=2;i<=n;i++){
		if(a[i]-a[i-1]< k){
			x++;
		}
		else{
			sum = a[i];
		}
	}
	return x<=m;
}	
int main(){
	cin>>n>>m;
	int r=0,l=INT_MAX;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		r+=a[i];
		if(i>1){
			l=min(a[i]-a[i-1],l);
		}
	}
	sort(a+1,a+1+n);
	while (l<=r){
		int mid = l+(r-l)/2;
		if (check(mid)){
			l=mid+1;
		}
		else{
			r = mid -1;
		}
	}
	cout<<r	;
	return 0;
} 
2024/3/19 13:47
加载中...