AGGRCOW - Aggressive cows

Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stalls are located along a straight line at positions x1 ... xN (0 <= xi <= 1,000,000,000).

His C (2 <= C <= N) cows don't like this barn layout and become aggressive towards each other once put into a stall. To prevent the cows from hurting each other, FJ wants to assign the cows to the stalls, such that the minimum distance between any two of them is as large as possible. What is the largest minimum distance?

Input

t – the number of test cases, then t test cases follows.
* Line 1: Two space-separated integers: N and C
* Lines 2..N+1: Line i+1 contains an integer stall location, xi

Output

For each test case output one integer: the largest minimum distance.

Example

Input:

1
5 3
1
2
8
4
9

Output:

3

Output details:

FJ can put his 3 cows in the stalls at positions 1, 4 and 8,
resulting in a minimum distance of 3.


Added by:Roman Sol
Date:2005-02-16
Time limit:2s
Source limit:10000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All
Resource:USACO February 2005 Gold Division

hide comments
2015-12-23 19:49:23 Junaid
I would say this is the best problem I have done on SPOJ till now..I took a whole day just to solve this one....but finally AC in one go...my 44th..:P...All THANKS to topcoder.....:)...highly recommended problem..
2015-12-22 16:59:47
my 50th :) Nice Question
2015-12-22 15:23:32 ABHISHEK RAJPUT
@giriprasad kemburu,yes, he can because minimum distance between stalls is again going to be 3 if you take {1,4,9}.
2015-12-15 18:07:15 giriprasad kemburu
Can he put cows at positions 1,4,9?Please explain anyone.
2015-12-12 07:59:59
Do put your answer on a new line. Got WA for not doing that.
2015-12-08 15:25:13
An absolute must do problem for beginners. Do not make the ultra-silly mistake that I made: comparing indices of array instead of the values stored in those indices [Took me 3 WAs and half an hour to realise that :-P ].
2015-12-06 09:22:28 RAYHAN ROMAN
i comment wrong

Last edit: 2015-12-06 09:30:30
2015-11-29 05:58:59 sunil
is it compulsory to assign a cow the first stall
means lowest number stalll
2015-11-26 13:56:23 Sid
If you are wondering why 1,4,8 instead of 1,4,9 then do not. For me its actually a subtle hint for applying binary search. You will understand it when you apply the algo.

Also if you are confused by the "minimum largest" terminology think of it as this:
if you put cows at 1,2,8. Distance btw stalls is 1, 6 resp. but if you keep at 1,4,8 distance is 3, 4. In first case minimum distance is 1 while 2nd case its 3. You can never put cows that gives a minimum that is larger than 3 i.e. distance cannot be 4,5 or 6,7 (where mins 4 and 6 > 3) so the largest minimum is 3. Just keep that in mind and Farmer John will be happy with you! ;D

Hey @darkhire21 I don't think its required as int can store 4 bytes i.e. nos. till ~ 2 billion. the limit given is 1 billion. So until the algo overflows due to complex arithmetic int is enough.

For binary search go for google for topcoder binary search tutorial or search through comments as someone has posted the link

Last edit: 2015-11-26 14:07:28
2015-11-06 22:20:23
<p>int-> long got accepted .</p>
Anybody knows how its possible int == long 4 byte ? .
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.