附加点过不去QWQ
查看原帖
附加点过不去QWQ
836593
qiiie_yyy楼主2023/5/27 14:12

记录

这道题我搞了一周啊啊啊

还是过不去

好心人救我

#include<bits/stdc++.h>
#include<algorithm>
using namespace std;

const int MAXN=1e7+5;
long long l,n,k;
int cs1,cs2;
long long a[MAXN];
int b[MAXN],c[MAXN];

bool pd(int x){
	int ans=0;
	for(int i=0;i<n-1;i++){
		if((a[i+1]-a[i])%x==0) ans+=(a[i+1]-a[i])/x-1;
		else ans+=(a[i+1]-a[i])/x;
	}

	return ans<=k;

}
int main(){
	scanf("%lld%lld%lld",&l,&n,&k);
	for(int i=0;i<n;i++){
		scanf("%lld",&a[i]);
	}
	long long z=1;
	long long r=l;

	while(z+1<r){
		long long min=(z+r)/2;
		if(pd(min)) r=min;
		else z=min;

	}
	printf("%d\n",r);
}
2023/5/27 14:12
加载中...