Subtask 1
For the first subtask, some very naive brute force will work. Each bucket will be poured into at most
times, and there are
of them, so there are
possible combinations, each taking
operations to check.
Time Complexity: 
Subtask 2
For the second subtask, note that if we have three consecutive buckets, and the first is poured into
times and the second
times, then we must pour into the third one
times. We can thus brute force all possibilities for the first two values of the answer array, and use this formula to get the remaining ones. If any values are negative or larger than
, we don't have a solution.
Time Complexity: 
Subtask 3
Note first that if
is not divisible by
, we do not have a solution.
Furthermore, note that if
is divisible by
, a possible solution is
, repeated
times.
For the remainder of this editorial, let
be our answer array, where
is the amount we pour into the first bucket, and
is the amount we pour into the
th bucket.
In fact, our buckets are in a circle, so let's make
infinite in both directions, where we have
.
Now, let
be arbitrary consecutive elements of
.
Note that we must have
, as mentioned in subtask 2.
For this subtask, if
, we have:

Or:

So every third element is equal.
It should be clear that if every third element is equal, unless
is divisible by
,
(that is, all elements are equal).
If
is not divisible by
, then we must have a solution with all identical elements, or no solution at all.
If
is divisible by
, the following pattern yields the lexicographically smallest solution:

And this is all that is required for the
subtask.
Time Complexity: 
Subtask 4
For this subtask, we consider
. We now have:

So we have:

If
is odd, we have:

Or:

So every other element is equal. In fact, if
is odd:

So every element is equal. This case proceeds similarly to the
case mentioned above.
However, if
is even, the case proceeds differently. Let
. Then:

Also, let
. Then:

So
, or
, or
.
So every other element is equal. Then:

So
must be even in order for a solution to exist.
In fact, our lexicographically smallest pattern is:

This concludes the
case.
Time Complexity: 
Subtask 5
For this subtask, we have
. We have:

Or:

Without loss of generality, assume
, since if
, we can consider the array backward.
Then, since
:

We have equality only when
. Assume that
. Then:

This means that:

However, this means:

Which is a contradiction.
Thus, we must have
, which tells us that every element of the array must be equal.
In fact, when
, we have a solution if and only if
is divisible by
.
Time Complexity: 
Subtask 6
To finish off the solution, we need help from a little math.
Suppose our answer contains a repeating cycle
of length
. Note that for this problem,
. Let
, and note that it must be an integer. Then we need to compute:

Note that this inner sum can be precomputed. Assign it the value
:

This should look very similar to the geometric sequence formula, and we can apply it here:

Note that since we are computing our answer modulo
, instead of dividing, we need to multiply by the multiplicative modular inverse.
Time Complexity: 
Final Thoughts
Although this problem has an (admittedly exhausting) proof, this problem should teach you to try solutions. Many who solved this problem attempted submitting
times and got AC on the
case, and proceeded from there. The other way to approach this is bottom up; look at the subtasks and solve them individually, and then combine them together.
This problem isn't meant for you to sit and stare at for hours. Don't be afraid to guess.
Comments