求调,是哪步错了
查看原帖
求调,是哪步错了
1116551
liuweida0330楼主2024/1/18 13:19
 #include<bits/stdc++.h>
using namespace std;
int l,n,m,a[10000007];
bool panduan(int x){
	int f=a[1],cnt;
	for(int i=1;i<=n;i++){
		if(a[i]-f>x)
		cnt++;
		else 
		f=a[i];
	}
	if(cnt>m) return false;
	else return true;
}
int main(){
	cin>>l>>n>>m;
	for(int i=1;i<=n;i++){
	cin>>a[i];
	a[i]=a[i]+1;
}
	int left=1,right=l,mid,ans;
	while(left<=right){
		mid=(left+right)/2;
		if(panduan(mid)){
			ans=mid;
			left=mid+1;
		}
		else 
		right=mid-1;
	}
	cout<<ans;
	
}
2024/1/18 13:19
加载中...