博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
点灯笼
阅读量:6273 次
发布时间:2019-06-22

本文共 2356 字,大约阅读时间需要 7 分钟。

Description

Vanya walks late at night along a straight street of length l, lit by n lanterns. Consider the coordinate system with the beginning of the street corresponding to the point 0, and its end corresponding to the point l. Then the i-th lantern is at the point ai. The lantern lights all points of the street that are at the distance of at most d from it, where d is some positive number, common for all lanterns.

Vanya wonders: what is the minimum light radius d should the lanterns have to light the whole street?

Input

The first line contains two integers n, l (1 ≤ n ≤ 1000, 1 ≤ l ≤ 109) — the number of lanterns and the length of the street respectively.

The next line contains n integers ai (0 ≤ ai ≤ l). Multiple lanterns can be located at the same point. The lanterns may be located at the ends of the street.

Output

Print the minimum light radius d, needed to light the whole street. The answer will be considered correct if its absolute or relative error doesn't exceed 10 - 9.

Sample Input

Input
7 15 15 5 3 7 9 14 0
Output
2.5000000000
Input
2 5 2 5
Output
2.0000000000

Hint

Consider the second sample. At d = 2 the first lantern will light the segment [0, 4] of the street, and the second lantern will light segment [3, 5]. Thus, the whole street will be lit.

 

 

分析:

       只要找到灯笼与灯笼之间最远的距离就好了,这样所有的灯笼着凉整条路就都覆盖了。

 

 

源代码:

1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 #define maxn 1000+10 8 int arr[maxn]; 9 long long l;10 int main()11 {12 int n;13 while (cin >> n >> l)14 { 15 double r0,r2,r;16 double d=0.0;17 for (int i = 0; i < n; i++)18 {19 cin >> arr[i];20 }21 sort(arr, arr + n);22 r0 =arr[0] - 0; //左端点的半径23 r2 =max(r0,(double) l - arr[n - 1]); //从左端点跟右端点找一个最大的半径24 for (int j = 0; j < n; j++)25 {26 d = max(d, (double)arr[j + 1] - arr[j]); //找灯笼间距离最远的区间27 }28 r =d / 2.0; //灯笼间最远距离的一半,就是半径29 r =max(r2, r); //与前面的端点半径比较,找最大的30 printf("%.10f\n", r);31 }32 return 0;33 }

 

 

 

转载于:https://www.cnblogs.com/Lynn0814/p/4711847.html

你可能感兴趣的文章
《Git in Practice》作者访谈:关于Git的八个问题
查看>>
Visual Studio 2019正式版发布,专注于人工智能和生产力
查看>>
写给Java程序员的Java虚拟机学习指南
查看>>
苏宁11.11:如何基于异步化打造会员任务平台?
查看>>
滴滴开源支撑业务代码重构工具Rdebug
查看>>
Table Editor 使用方法
查看>>
支持多种小程序!阿里云ARMS推出小程序监控
查看>>
《The Age of Surge》作者访谈
查看>>
《A Seat at the Table》作者访谈录
查看>>
F# 4.5提供Spans、Match!等特性
查看>>
微信小程序模块化开发实践
查看>>
Jenkins将致力于提升稳定性、易用性和云原生兼容性
查看>>
Facebook开源工具包LASER,支持93种语言
查看>>
禁止eclipse校验JavaScript
查看>>
从微服务迁移到工作流的经验之谈
查看>>
Oracle再发力,区块链平台多项更新
查看>>
微软发布用于Serverless架构的Azure API Management
查看>>
MongoDB Mobile Sync for iOS推出Beta版本
查看>>
Visual Studio 2015价格大幅下调
查看>>
QCon演讲速递:异步处理在分布式系统中的优化作用
查看>>