Editorial for CPC '21 Contest 1 P6 - AQT's Break Time is Over
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
Subtask 1
We can model each student as a 3-dimensional coordinate . We will first "plane sweep" (like line sweep, but in 3 dimensions) through the x dimension in non-increasing order. We sweep with a plane parallel to the yz-plane, having its x-coordinate denote the current
being considered. This means that any coordinate with
will get covered. We can treat the remaining points with
as 2-dimensional coordinates
. Since we are sweeping in non-increasing order, our algorithm will add new
points into consideration and never remove any old points. Let
be the minimum value of
we need to cover all the points if we set
at the current moment. When we add a point
into consideration, all
with
will get updated to
. For the first subtask, it is sufficient to loop to update all
. We can then loop through all
to find the minimum
(we set
and
). Our answer is the minimum of all
. This costs
per point for a total time complexity of
.
Subtask 2
Notice that the function is monotonically non-increasing. Instead of looping to update and query, we can use a data structure such as a segment tree or a balanced binary search tree (BBST).
segment tree solutions should pass with ease. Some optimization may be required to get BBST solutions or
solutions to pass.
Comments