SPOJ AGGRCOW

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?
 * https://www.spoj.com/problems/AGGRCOW/

Explanation
This is a binary search problem.

Gotchas

 * Any points one can easily overlook?
 * The correct way to understand ambiguous formulations?

Implementations
The binary search is on the solution number itself, between 1 and N/(C-1).

Testing a given solution simply requires sorting the array, and seeing if the cows can be placed by a greedy algorithm.

Optimizations
Optimizations here.

Input
Input #1: 1 5 3 1 2 8 4 9

Input #2: 1 6 3 1 2 7 5 11 12

Output
Output #1: 3

Output #2: 5