CCC '18 S1 - Voronoi Villages

View as PDF

Points: 3 (partial)
Time limit: 1.0s
Memory limit: 256M

Problem type
Canadian Computing Competition: 2018 Stage 1, Senior #1

In the country of Voronoi, there are villages, located at distinct points on a straight road. Each of these villages will be represented by an integer position along this road.

Each village defines its neighbourhood as all points along the road which are closer to it than to any other village. A point which is equally close to two distinct villages and is in the neighbourhood of and also in the neighbourhood of .

Each neighbourhood has a size which is the difference between the minimum (leftmost) point in its neighbourhood and the maximum (rightmost) point in its neighbourhood.

The neighbourhoods of the leftmost and rightmost villages are defined to be of infinite size, while all other neighbourhoods are finite in size.

Determine the smallest size of any of the neighbourhoods (with exactly 1 digit after the decimal point).

Input Specification

The first line will contain the number , the number of villages. On the next lines there will be one integer per line, where the line will contain the integer , the position of the village . All villages are at distinct positions.

Output Specification

Output the smallest neighbourhood size with exactly one digit after the decimal point.

Sample Input

5
16
0
10
4
15

Sample Output

3.0

Explanation for Sample Output

The neighbourhoods around and are infinite. The neighbourhood around is units ( to the left, and to the right). The neighbourhood around is units ( to the left and to the right). The neighbourhood around is units ( to the left and to the right).

• commented on Oct. 15, 2022, 8:57 p.m.

To further clarify the output:

The neighbourhood around is units (2 to the left, and 3 to the right)

This basically means that the halfway point between 0 and 4 is 2, and 4 to 10 is 7. Thus the neighborhood starts at position 2 and ends at 7, which brings it to 5 units overall (unrelated to N = 5, first sample input).

• commented on June 3, 2022, 7:06 a.m.

You can down vote me as much as you want, but this problem is described in extremely vague terms. It took me forever to understand that we need to sort the villages before we do any logic on them. Seriously how hard is it to say that villages are sorted in the explained example!

• commented on June 16, 2022, 5:55 p.m. edit 2

This comment is hidden due to too much negative feedback. Show it anyway.

• commented on June 29, 2022, 9:32 p.m.

Whether the need to sort or not is obvious that doesn't bely that the explanation is still pretty vague. It's poorly written, poorly explained.

• commented on Dec. 26, 2021, 3:20 a.m.

Really make sure you understand the explanation for the sample output before you begin writing any code. I wasted a lot of time because I misunderstood the question, don't make the same mistake.

• commented on Feb. 29, 2020, 3:06 a.m.

This comment is hidden due to too much negative feedback. Show it anyway.

• commented on Jan. 30, 2019, 9:54 p.m.

I spent 4 hours on figuring out the mechanics of outputting and inputting. Damn YES!

• commented on Dec. 29, 2018, 3:40 p.m. edited

I spent 10 min trying to figure out why 4 is 5 units (2 to the left, and 3 to the right) and then find that "5" in the sample input is NOT a villiage.... I am soooo stupid

• commented on Feb. 18, 2018, 6:53 p.m.

For those who are constantly getting 6/15, make sure that your output isn't in scientific notation, took me a bit to figure that out on the CCC.

• commented on Feb. 19, 2018, 12:34 p.m.

It says that in the editorial as well, but it probably only occurs in some languages. Thanks anyways for that useful info!