Well, you know that max/min < CONST, but all the elements are everything. Based on this, you can enter O(1)and O(k+n/k)find min / max 1 .
k, -. array[floor((x-MIN)/MAX-MIN)*k)] ( x = MAX). , , - n/k.
- .
findMax() : , - O (k) O(n/k), .
k:
k + n/k.
d(n+n/k)/dk = 1-n/k^2 = 0
n = k^2
k = sqrt(n)
O(sqrt(n) + n/sqrt(n)) = O(sqrt(n)) min/max , / O (1).
"reset" - max min, " " - , .
, MAX 2*max, MIN 1/2*min , reset "DS.
(1) , . - P(x)=P(y) x, y, .