codeforces B. Vanya and Lanterns



B. Vanya and Lanterns
time limit per test1 second
memory limit per test256 megabytes
inputstandard input
outputstandard output
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?

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.

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.

7 15
15 5 3 7 9 14 0
2 5
2 5
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.

Someone please explain this question. Just the question not the answer.


Consider a big scale going from 0 to l ( l <= 10^9).

There are n lanterns between 0 to l, and their positions is given by a* ( 0 <= a* <= l )

Now, what does light radius ‘d’ means?

If say a lantern at position, a* = 5 has light radius of 2. it means that that lantern will light up street from 3 to 7 (2 left of its position and 2 right , and of course the position the light is at)

Another example, d = 3, a* = 7 => will light up 4 to 10.

Now you are given all ‘n’ positions of such lanterns, you know length of street (0 to l). You have to find minimum value of ‘d’ such that there exist no spot on this street which is not lit.


Although @divyansh_gaba7 answered it already, I wanna answer it in a simple manner.

1.Sort the array

2.Let x = (distance b/w starting point and 0) => x = (a[start] - 0)

3.Let y = (distance b/w ending point and length of street) => y = length - a[size-1]

4.Now find the max distance b\w two lanterns => max_dist.

5.ans = max(max_dist/2,max(x,y))

Happy coding!


ayush why (max_dist/2)?


thanks it helped a lot


Max_dist is the maximum distance b/w two lanterns and mx_dist/2 tells that how many areas one lantern can glow at max.Think about it yourself, you will understand it.I can’t explain everything in words.