路灯

来源:互联网 发布:合肥市数据资源局王伟 编辑:程序博客网 时间:2024/06/10 01:42

题目描述

一条长l的笔直的街道上有n个路灯,若这条街的起点为0,终点为l,第i个路灯坐标为ai,每盏灯可以覆盖到的最远距离为d,为了照明需求,所有灯的灯光必须覆盖整条街,但是为了省电,要是这个d最小,请找到这个最小的d。

输入描述:

每组数据第一行两个整数n和l(n大于0小于等于1000,l小于等于1000000000大于0)。第二行有n个整数(均大于等于0小于等于l),为每盏灯的坐标,多个路灯可以在同一点。

输出描述:

输出答案,保留两位小数。

输入例子:

7 15
15 5 3 7 9 14 0

输出例子:

2.50


import java.math.BigDecimal;import java.util.Arrays;import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        while (sc.hasNext()) {            int n = Integer.parseInt(sc.next());            long l = sc.nextLong();            long[] a = new long[n];            for (int i = 0; i < n; i++) {                a[i] = Integer.parseInt(sc.next());            }            System.out.println(func(n, l, a));        }        sc.close();    }    public static String func(int n, long l, long[] a) {        Arrays.sort(a);        double dist = 0;        for (int i = 0; i < a.length - 1; i++) {            dist = Math.max(a[i + 1] - a[i], dist);        }        dist = Math.max((l - a[a.length - 1]) * 2, dist);        dist = Math.max(a[0] * 2, dist);        BigDecimal bd = new BigDecimal(dist / 2).setScale(2);        return bd.toString();    }}
0 0
原创粉丝点击