subtask RE了 求助
查看原帖
subtask RE了 求助
821247
i_wii_win楼主2023/4/6 02:26
#include<iostream>
using namespace std;
const int N=100010;
int n,m,d;
int q[N];
bool check(int x) {
	int cnt=0;
	int i=1,now=0;
	while(i<n) {
		int k=q[i]-q[now];
	if(k>x) {
		if(k%x==0) cnt+=k/x-1;
		else cnt+=k/x;//刚好整除要-1
		now=i;
		i++;
		} 
        else {
		now=i;
		i++;
		}
	}

	if(cnt<=m) return true;
	else return false;
}
              
int main() {

	cin>>d>>n>>m;
	for(int i=0; i<n; i++) 
		cin>>q[i];
	
	int l=0,r=d;
	int ans=0;
	while(l<=r) {
		int mid=l+r>>1;
		if(check(mid))
			ans=mid,r=mid-1;
		else
			l=mid+1;
	}
	cout<<ans;

}
2023/4/6 02:26
加载中...