1、路标设置
import java.util.Scanner;
public class 路标设置 {
static int L,N,K;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
L = sc.nextInt();//公路长度
N = sc.nextInt();//原有路标的数量
K = sc.nextInt();//最多可增设的路标数量
int[]a = new int[N];
for(int i = 0 ; i < N ; i++) {
a[i] = sc.nextInt();//原有的N个路标位置
}
int l = 0 , r = L;
int ans = 0;
while(l <= r) {
int m = l + (r-l)/2; //获取空旷指数
if(check(m ,a)) { //判断是否需要插入路牌
ans = m; //如果需要插入路牌-记录空旷指数
r = m-1; //寻找是否还有更小的空旷指标
}else {
l = m+1;
}
}
System.out.print(ans);
}
static boolean check(int m,int[] a) {
int y = K;
int size = 0 ;
for(int i = 0 ; i < N ;i++) {
if(a[i] - size <= m) {
size = a[i];
}else {
size += m;
i--;
y--;
}
}
if(y >= 0) return true;//可增设路标数量够用
else return false;
}
}