一条长l的笔直的街道上有n个路灯,若这条街的起点为0,终点为l,第i个路灯坐标为ai,每盏灯可以覆盖到的最远距离为d,为了照明需求,所有灯的灯光必须覆盖整条街,但是为了省电,要是这个d最小,请找到这个最小的d。
// ConsoleApplication3.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
#include<vector>
#include<deque>
#include<iomanip>
#include<algorithm>
using namespace std;
int main()
{
int n;
long int l;
while (cin >> n >> l)
{
vector<long int> lamps;
for (int i = 0; i < n; i++)
{
long int t;
cin >> t;
lamps.push_back(t);
}
//排序
for (int i = 0; i < n; i++)
{
for (int j = i + 1; j < n; j++)
{
if (lamps[i] > lamps[j])
{
long temp = lamps[j];
lamps[j] = lamps[i];
lamps[i] = temp;
}
}
}
double max = lamps[1] - lamps[0];
for (int i = 1; i < n - 1; i++) //找到间间距最大的
{
if (lamps[i + 1] - lamps[i]>max)
{
max = lamps[i + 1] - lamps[i];
}
}
max = max / 2;
if (l - lamps[n - 1] > max)
{
max = l - lamps[n - 1];
}
if (lamps[0] > max)
{
max = lamps[0];
}
cout << setiosflags(ios::fixed);
cout << setprecision(2) << max << endl;
}
return 0;
}