稻花香里说丰年,看回wa一片
查看原帖
稻花香里说丰年,看回wa一片
1340578
piyuhan666楼主2025/1/15 12:02
#include<bits/stdc++.h>
using namespace std;
int n,m,l,a[50010];
bool check(int x){
	int t=1,n=1,c=1;
	while(c<n+1){
		c++;
		if(a[c]-a[n]<x){//小于最小,要移走 
			t++;//实际一走数量加 
		}
		else n=c;//这个人直接去下一个石头 
	}
	return t<=m;//返回实际移走数量 
}
int main(){
	cin>>l>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	a[n+1]=l;
	long long left=0,r=l,mid,ans=0;
	while(left<=r){
		mid=left+(r-left)/2;
		if(check(mid)){//在网上找 
			left=mid+1;
			ans=mid;
		}
		else r=mid-1;
	}
	cout<<ans;
	return 0; 
}
2025/1/15 12:02
加载中...