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.


hide comments
anup2raj: 2018-01-04 09:00:11

good one

Last edit: 2018-01-04 09:01:21
code0monkey1: 2017-12-27 10:05:52

Struggled with it for almost A FULL MONTH ( On and Off ). Did many similar problems to get a hang of the logic before approaching the question again ( Read the topcoder binary search tutorial ).

Finally solved the question myself before the year ended !! :D

This stack overflow post post provides a more general ( and clearer ) way of looking at this problem ( and other problems like this ) : https://stackoverflow.com/questions/28095662/algorithm-help-how-to-divide-array-into-n-segments-with-least-possible-largest

This quora link is totally dedicated to the Aggressive cows problem : https://www.quora.com/What-is-the-correct-approach-to-solve-the-SPOJ-problem-Aggressive-cow

Similar problems you guys might want to try ( apart from the FairWorkLoad problem mentioned in the topcoder tutorial ) :
https://www.codechef.com/problems/PRPR5
https://articles.leetcode.com/the-painters-partition-problem/
https://practice.geeksforgeeks.org/problems/allocate-minimum-number-of-pages/0

Last edit: 2017-12-27 10:07:50
true_idiot: 2017-12-20 14:16:02

took 2 whole days for me to come up with the solution!
tpcoder is lit af!!! :D

v_pp_27: 2017-12-03 19:40:13

Topcoder tutorial on binary search helped

Radha Krishna: 2017-11-24 13:52:50

any similar kind of problems available out there to get the practice?

Shubham Aggarwal: 2017-11-20 22:18:05

I tested it on a lot of cases, it runs fine, but here I'm getting NZEC in python

Last edit: 2017-11-21 06:10:01
balakrishna21: 2017-11-19 06:43:57

could any one give any some more test cases for this "AGGRCOW - Aggressive cows
" problem

themast3r: 2017-11-01 16:59:04

Possibly the finest problem I solved on SPOJ.

Last edit: 2017-11-01 16:59:18
rebornplusplus: 2017-10-22 10:48:44

Nice problem ;)

jd_tc: 2017-10-20 09:30:44

Thank @grb_avatar for the link, it was really helpful :) :)


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