Observation
Using the numbers
, we can make the numbers
. For the remainder of this editorial, let
represent the list of numbers from
to
(inclusive).
Subtask 1
Instead of using
, what happens when we have
,
, etc.?
Suppose we have the numbers
. We can make the numbers
and
but we cannot make the numbers
. This is because the largest possible difference is
and the smallest possible sum is
. We can fill in this gap by extending the array to
, which now covers the numbers
.
Expressing in terms of
, we have an optimal value of
. This results in a length of
, which approaches
for large values of
. To satisfy the length requirement for smaller values of
, we can remove the middle two array elements while still being able to construct all the numbers. This works for
, which is always true for
.
Time Complexity: 
Hint for Subtask 2
What could the square root in
imply? Also think about multiples.
Subtask 2
Let's reconsider the numbers
. Notice that if we have some other number
, we can make the numbers
except for
itself. Thus, we can try adding numbers so that the range of numbers each can produce covers the range
. The intended solution is to use multiples of
as this covers all the numbers up to
and the number
can be used to make the multiples themselves. This requires an array length of
and we can loop through all values of
to find the one that results in the minimum length.
Time Complexity: 
Bonus
Using calculus, we can determine the optimal value of
and the minimum length it produces in
time. It turns out the minimum length is
, which can be proven to never exceed
.
Comments