题解
2023-03-11 20:17:30
发布于:上海
191阅读
0回复
0点赞
#include <stdio.h>
#include <math.h>
#include <algorithm>
#include <iostream>
#include <string.h>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <vector>
using namespace std;
#define ll long long
int f,n,m;
ll a[50007];
int main() {
scanf("%d%d%d",&f,&n,&m);
ll k=n-m;
a[0]=0;
for(int i=1; i<=n; i++) {
scanf("%lld",&a[i]);
}
if(m==0) {
printf("%d\n",f);
return 0;
}
ll l=0,r=f;
while(l+1<r) {
ll mi=(l+r)>>1;
ll temp=a[0];
int ans=1;
for(int i=1; i<=n; i++) {
if(a[i]-temp>=mi) {
ans++;
temp=a[i];
}
}
if(ans>=k+1)
l=mi;
else
r=mi;
}
printf("%d\n",l);
return 0;
}
这里空空如也
有帮助,赞一个