网易:路灯

路灯

题意

有一条长为L的路,然后上面有若干路灯,问要照亮整条路并且在最省电的情况下,灯的覆盖距离最小可以是多少

思路

ans=max{第一盏灯到0坐标的距离,最后一盏灯到L的距离,两盏灯之间的距离/2}

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
#define ll long long int
const int maxn = 1e3+5;
#define INF 1<<30
#define max(x,y) ((x)>(y)?(x):(y))
int arr[maxn];
int main()
{
    ll n,dis;
    while(cin>>n>>dis)
    {
        for(int i=0;i<n;++i) cin>>arr[i];
        sort(arr,arr+n);
        double ans = -INF;
        for(int i=1;i<n;++i) 
        {
            ans=max(ans,(arr[i]-arr[i-1]));
        }
        ans/=2;
        ans=max( max(ans,arr[0]),max(ans,(dis-arr[n-1])) );
        printf("%.2lf\n",ans);
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/q1122333/article/details/84429224