怎么判断答案在哪里
查看原帖
怎么判断答案在哪里
803885
_8008008楼主2023/10/12 12:06

rt答案在r,l中 输出l拿60%输出r拿另外40%

#include<iostream>
using namespace std;
int L,N,K,a[1000000];
bool check(int len){
	int cnt=a[1]/len;
	for(int i=2;i<=N;i++)cnt+=(a[i]-a[i-1])/len;
	return (cnt+(L-a[N])/len)<=K;
}
int main(){
	scanf("%d%d%d",&L,&N,&K);
	for(int i=1;i<=N;i++)scanf("%d",&a[i]);
	int l=0,r=L+1,mid;
	while(l+1<r){
		mid=(l+r)/2;
		if(check(mid))r=mid;
		else l=mid;
	}
	printf("%d",l);
	return 0;
}
2023/10/12 12:06
加载中...