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
mayank2120: 2021-05-26 09:19:31

this problem was fun!!

nigurjar: 2021-05-12 12:01:49

@kimg but questions says "minimum distance between any two of them is as large as possible." so we have to maximise minimum distance. which can come at 5 if put at 9

sakshamtomar29: 2021-05-11 13:31:29

Great binary search problem!

sandhuz: 2021-05-02 22:28:50

I recommend first do book allocation problem and here is its explanation:

Similar ques here: EASY

Once you done it give a try to this one if any difficulties here is link for explanation:

sharan0105: 2021-04-06 21:47:50

I actually saw a solution to solve this problem but this problem just tells you to what extent binary search can be used

makhan_28: 2021-03-18 06:00:38

The concept which is applied in this problem is mind blowing!!
great problem, got to learn so much :)

winner13: 2021-03-16 20:10:07

good question

Last edit: 2021-03-16 20:10:41
ishraaq_56789: 2021-03-10 07:50:34

One hell of a problem! Took me one entire day, but I'm happy that at the end of the day I could learn something.
Beginners, please don't leave this problem, it will teach you a lot. Understanding the concept and succesful implementation aren't necessarily the same thing.
Again, only resort to reading other people's code AFTER you've fully exhausted yourself (like after 10 WAs).
And PLEASE resist the temptation of copy pasting the code just to get AC. AC won't help you, you need to actually get away with some experience from this problem.
Edit- For those who got AC in one go here- either they were familiar with the concept, or they copied someone else's code just to get AC.

Last edit: 2021-03-10 07:57:16
kimg: 2021-02-21 22:23:53

Well, you can. However, the minimum distance would still be the same, which is 4-1 = 3

mihimel: 2021-02-20 13:58:06

In the example, why can't I put a cow in 9? Then the largest minimum distance would be 4? Or I am not getting the problem?

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