CodeForces 492B Vanya and Lanterns(水题)

本文介绍了一种计算路灯照明半径的方法,通过输入路灯数量和街道长度,以及每个路灯的位置,来确定最小的照明半径,确保整条街道都能被照亮。

思路:水题


#include<bits\stdc++.h>
using namespace std;
#define LL long long
const int maxn = 1005;
int a[maxn];
int main()
{
     int n,l;
	 scanf("%d%d",&n,&l);
	 for(int i = 0;i<n;i++)
		 scanf("%d",&a[i]);
	 sort(a,a+n);
	 double ans = max(a[0],l-a[n-1]);
	 for(int i = 1;i<n;i++)
		 ans = max(ans,(a[i]-a[i-1])/2.0);
	 printf("%.10lf\n",ans);
}

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 nl (1 ≤ n ≤ 10001 ≤ 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.



### 筛选 Codeforces Div. 2 和 Div. 3 难度目的方法 在 Codeforces 上筛选适合训练的目是提升算法能力的重要一步。对于希望专注于 Div. 2 和 Div. 3 难度目的用户,可以通过以下方式进行操作。 Codeforces 的比赛通常分为 **Div. 1**、**Div. 2** 和 **Div. 3** 三类。其中,**Div. 3** 的目通常被认为是最适合初学者的,而 **Div. 2** 的目则适合有一定基础但仍需提升的选手。为了筛选这些目的练习资源,可以访问 Codeforces 的 [Problemset](https://codeforces.com/problemset) 页面。 在 Problemset 页面中,可以通过 URL 参数手动筛选特定比赛的目。例如,访问 `https://codeforces.com/problemset?tags=implementation` 可以查看标记为 "implementation" 的目,而 `https://codeforces.com/problemset?tags=math` 则可以查看与数学相关的目。此外,可以通过访问特定比赛的链接,例如 `https://codeforces.com/contest/1574/` 来查看某一场比赛的目列表 [^1]。 对于初学者,建议从 **Div. 3** 比赛中挑选目进行练习。例如,比赛编号为 `1574` 的比赛属于 **Div. 3** 类别,其中的目难度适中,适合巩固基础算法和数据结构知识 。此外,Codeforces 的博客功能也提供了许多用户分享的解思路和训练心得,可以帮助理解目的解法 [^3]。 在练习过程中,建议结合代码实现和目总结,避免只做不总结的情况。可以通过记录每次练习的思路和代码,逐步建立自己的解模板和方法库 。 #### 示例代码:构造一个简单的算法训练计划 ```python # 构建一个简单的每日训练计划 training_plan = { "Monday": "Sorting and Searching", "Tuesday": "Dynamic Programming", "Wednesday": "Graph Theory", "Thursday": "Math Problems", "Friday": "Implementation", "Saturday": "Virtual Contest", "Sunday": "Review and Summary" } for day, topic in training_plan.items(): print(f"{day}: {topic}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值