一条长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;
}
posted @ 2017-02-28 16:11  wdan2016  阅读(1168)  评论(0编辑  收藏  举报