import java.util.Arrays;
import java.util.Scanner;
public class Main{
static Scanner input = new Scanner(System.in);
public static void main(String[] args){
int length = input.nextInt();
int rocketnum = input.nextInt();
int derocknum = input.nextInt();
int[] data = new int[rocketnum+2];
data[0] = 0;
data[rocketnum+1] = length;
for(int i=1;i<=rocketnum;i++) data[i] = input.nextInt();
Arrays.sort(data);
int res = 0;
for(int l=0,r=length/rocketnum,mid=(l+r)/2,count=0,sum=0;l<=r;count=0,sum=0){
for(int i=0;i<=rocketnum;i++){
sum += data[i+1] - data[i];
if(sum<mid){
count++;
}else{
sum=0;
}
}
if(count<=derocknum){
res = mid;
l = mid+1;//注意
mid = (l+r)/2;
}else{
r = mid-1;
mid = (l+r)/2;
}
}
System.out.print(res);
}
}
River Hopscotch 【二分搜索】
最新推荐文章于 2018-04-17 21:37:45 发布