Concept Flow - Allocate Minimum Pages Binary Search on Answer
Set low = max(pages array)
Set high = sum(pages array)
While low <= high
Calculate mid = (low + high) / 2
Check if allocation possible with mid
Update high = mid - 1
Repeat loop
Return low as minimum pages
We use binary search on the range of possible maximum pages to allocate, checking feasibility each time, narrowing down to the minimum possible maximum.