Bestcoder round #4 miaomiao's geometry)

Source: Internet
Author: User
Miaomiao's geometry


Time Limit: 2000/1000 MS (Java/others) memory limit: 65536/65536 K (Java/Others)
Total submission (s): 10 accepted submission (s): 3


Problem descriptionthere are n point on X-axis. miaomiao wowould like to cover them all by using segments with same length.

There are 2 limits:

1. A point is convered if there is a segments t, the point is the left end or the right end of T.
2. The length of the intersection of any two segments equals zero.

For example, point 2 is convered by [2, 4] and not convered by [1, 3]. [1, 2] and [2, 3] are legal segments, [1, 2] and [3, 4] are legal segments, but [1, 3] and [2, 4] are not (the length of intersection doesn't equals zero), [1, 3] and [3, 4] are not (not the same length ).

Miaomiao wants to maximum the length of segements, please tell her the maximum length of segments.

For your information, the point can't coincidently at the same position. inputthere are several test cases.
There is a number T (t <= 50) on the first line which shows the number of test cases.
For each test cases, there is a number N (3 <= n <= 50) on the first line.
On the second line, there are n integers AI (-1e9 <= AI <= 1e9) shows the position of each point. outputfor each test cases, output a real number shows the answser. please output three digit after the decimal point. sample input331 2 331 2 441 9 100 10 sample output1.000 2.000 8.000 HintFor the first sample, a legal answer is [1, 2] [2, 3] So the length is 1. for the second sample, a legal answer is [-1, 1] [2, 4] So the answer is 2. for the Thired sample, a legal answer is [-100,108], [], [], [] So the answer is 8. similar to the "range coverage" issue! In each group, n numbers are input, which are different, meaning that there is a difference between each two values. We need to overwrite these points with non-counting equal length line segments, and these points must be at the endpoints of the small line segments. Example (the third group of data above): array A: 1 9 100 10 first sort the order, ---> 1 9 10 100 to overwrite these points, and these vertices must be on the endpoint, and no two line segments used for overwriting can have repeated parts. Array B 8 1 90 ----> the spacing between adjacent two numbers, which is also sorted by array B. Traverse the values of array B in array A: the idea is that the first and last values of array A can be extended out, so you don't have to consider it. Now consider the value in the middle of array A, for each a [I] (I = 1 ---> = n-2) to meet: (A [I] + B [J] <A [I + 1] | A [I]-B [J]> A [I-1]), if the current B [J] satisfies all a [I], B [J] is feasible, but we need to find the largest B [J]. loop through the B array to find it. The accepted code is as follows: (for reference)
# Include <stdio. h> # include <string. h ># include <algorithm> using namespace STD; int main () {int t; int N; int I, j; int A [60]; int B [60], e; scanf ("% d", & T); While (t --) {scanf ("% d", & N); for (I = 0; I <N; I ++) {scanf ("% d", & A [I]) ;}sort (A, A + n); E = 0; for (I = 1; I <n; I ++) {B [E ++] = A [I]-A [I-1];} Sort (B, B + N-1 ); int max =-1; int flag; for (I = 0; I <n-1; I ++) {flag = 1; // initialize each spacing mark for (j = 1; <n-1; j ++) {if (a [J]-B [I] <A [J-1] & A [J] + B [I]> A [J + 1]) {flag = 0; break; }}if (flag = 1) {If (B [I]> MAX) {max = B [I] ;}} printf ("% d", max); printf (". 000 \ n ");} return 0 ;}

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.