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?


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


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



5 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
aniketakgec: 2020-12-26 10:27:37

The largest minimum distance means ====> there are a lot of distances which you can maintain between the cows while placing them in the barn. In this problem, you just have to find the maximum among those possible distances.
suppose you can place every cow at a distance of say(d=1) from each other, then you came to know that this value 'd' can also be 2,3 or even more. then you just have to print the maximum permissible value of d.

codex666: 2020-12-18 20:16:58

I have a solution but I am getting WA. It is a combination of binary search and priority queue. Does anyone have a list of tricky testcases?

aakash18: 2020-12-09 09:05:19

One hell of a question that was. Wow !!! Really nice question on binary search. Tried it for 2 days.

abhisek_905: 2020-11-29 05:10:49

for reference see

Last edit: 2020-11-29 05:13:10
satyam_656: 2020-11-27 06:18:05

good question of binary search for beginners

fadihamwi2001: 2020-11-26 11:53:49

got an AC :)

shashankchdhry: 2020-11-10 10:40:48

Guys, those of you who are finding it overwhelming or unsolvable I want to say take a break and do it again. No matter how long of a break you need, sometimes a fresh perspective comes with time. I tried this question 6 months ago, that time I even wasn't able to understand the discrete binary search approach. After a few days, I understood the concept then coded it, but the code didn't work. I gave up that time feeling overwhelmed. Now today, after 6 months I tried again. This time I got it! :D
Once it was an alien to me, now I feel confident in binary search. So, just keep at it guys, you will get it.
For reference:
P.S - I didn't do much coding in between these 5 months. And just try not to be as late as 6 months. :P

tomatoispotato: 2020-10-30 14:10:14

What does "largest minimum" distance even means? Isn't largest and minimum conflicting?

aceash: 2020-10-20 09:03:52

binary search on answers :)

okpreetam: 2020-10-11 07:47:33

Those who got AC, kindly check this test case...
2 2
9 12
: the answer should be 3

concept = mid - stallPos[0];

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