[网易]路灯

时间限制:1秒 空间限制:32768K 热度指数:21147
本题知识点: 动态规划

题目描述

一条长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
 1 #include <iostream>
 2 #include <vector>
 3 #include <algorithm>  
 4 
 5 using namespace std;
 6 
 7 int main()
 8     {
 9        int n,l;
10        int local;
11      
12        vector<int> v;
13        while(cin>>n>>l)
14            {
15               v.clear();
16               while(n--)
17                   {
18                      cin>>local;
19                      v.push_back(local);
20                   
21               }
22            sort(v.begin(),v.end());
23            
24            int max_dis=0;
25            for(int i=0;i<v.size()-1;++i)
26                {
27                   if(max_dis<(v[i+1]-v[i]))
28                       max_dis=v[i+1]-v[i];
29                
30            }
31          
32         int bargin = max(2*(l-v[v.size()-1]),2*v[0]);
33         if(max_dis<bargin)
34             max_dis = bargin;
35  
36         printf("%.2f\n",max_dis/2.0);
37        }
38     return 0;
39 }

 

posted @ 2017-06-06 12:41  懒小小喵  阅读(144)  评论(0编辑  收藏  举报