第三个点输出和答案一样为什么wa了?
查看原帖
第三个点输出和答案一样为什么wa了?
1189989
dsada546楼主2023/12/13 22:28

8 3 1 2 4 7 输出:2

#include<iostream>
#include<cstring>
using namespace std;
int a[50010],c[50010],L,n,m;
bool fun(int x){
	int b=0;
	memset(c,0,sizeof(c));
	if(a[1]<x)b++,c[1]=1;
	for(int i=2;i<=n;i++){
		int d=i-1;
		while(c[d]==1)d--;
		if((a[i]-a[d])<x)b++,c[i]=1;
	}
	int d=n;
		while(c[d]==1)d--;
		if((L-a[d])<x)b++;
		
	if(b>m)return false;
	else return true;
}
int main(){
	cin>>L>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	int l=1,r=1e6;
	while(l<r){
		int mid=l+(r-l)/2;
		if(fun(mid)){
			if(l==mid)break;
			l=mid;
		}
		if(!fun(mid))r=mid;
	}
	cout<<l;
}

2023/12/13 22:28
加载中...