40分\kk
测评记录
#include<iostream>
#include<set>
#include<map>
#include<algorithm>
using namespace std;
typedef long long ll;
int w[2][200007]={0},c,czh=0,l,n,k,sd,zs,num,a=1,b,y=-1,mid;
int cnt (int mid){
c=0;
int ka=0;
for(int i=1;i<=n;i++){
while(w[0][i]-ka>=mid){
c++;
ka=ka+mid;
}
ka=w[0][i];
}
return c;
}
int main(){
cin>>l>>n>>k;
for(int i=1;i<=n;i++){
cin>>sd;
czh=sd-w[0][i-1];
w[0][i]=sd;
w[1][i]=czh;
if(w[1][i]>y){
y=w[1][i];
}
}
b=y;
while(a<b){
mid=a+((b-a)>>1);
int dkk=cnt(mid);
if(dkk>k){
a=mid+1;
}
else{
b=mid;
}
}
printf("%d",a);
return 0;
}