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
2018-06-16 20:22:48
0.01s
Initially, I was getting 0.07s but after following optimizations reached 0.01s
1. std::ios::sync_with_stdio(false)
2. Traversed the array once and found the least difference between two consecutive array elements. Initialised the lo of binary search with this difference.
3. The max possible solution to this problem for any given case can be (n - c)/(c - 1). This formula can be easily formulated using pigeonhole principle. Initialise the hi of binary search with this value + 1 (just to be safe, integer division can cause truncation).

Also, I was using vector instead of an array. Switched to array and shaved off 0.02s.

Last edit: 2018-06-16 20:24:06
2018-06-14 22:13:04
If you don't get the it, just read Topcoder tutorial carefully.
Really recommended to understand how binary search can work in various ways.

Last edit: 2019-07-08 00:40:53
2018-06-13 22:18:47
why 1,4,9 is not in answer , largest minimum distance will be 4 n this case
2018-06-09 10:14:25
very good problem,lot to learn for beginners#binary search
2018-05-31 13:16:43
<h1> Good problem </h1>
2018-05-30 09:20:57
a good one !!
2018-05-24 01:21:01
Is 2-4-8 valid? If yes then answer should be 2 for the given test case.
2018-05-22 14:40:25 Li Xiaofeng
I believe 1-4-9 is also a valid arrangement, minimum distance is still 3.
2018-05-22 07:39:21
brilliant question!
2018-05-11 22:08:01
I got Runtime Error on submitting. I referred many other's solutions but still I am not able to find the error in my code. Below is the link of my code. Can someone please help me with it?

https://ideone.com/***********************see notes below***********

Edit: I got the error because of Arrays.parallelSort(). I changed it with Arrays.sort() and it worked.

Last edit: 2018-05-12 07:47:25
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.