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

// ConsoleApplication3.cpp : 定义控制台应用程序的入口点。
//

include "stdafx.h"

include

include

include

include

include

using namespace std;

int main()
{
int n;
long int l;
while (cin >> n >> l)
{
vector 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;
}

posted @ 2017-02-28 16:11  wdan2016  阅读(1286)  评论(0)    收藏  举报