Editorial for COCI '08 Regional #6 Cvjetici
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Simulating the growth of plants by maintaining a two-dimensional table is of time and space complexity , where
is the maximum coordinate. This solution scores 30 points.
Let be the number of plants for which a flower may grow at coordinate
(but hasn't yet). The sequence
initially contains all zeros and changes when plant
grows:
- Flowers will grow at coordinates
and
, a total of
of them, so we output that number. After these flowers have grown, there are no more available plants at coordinates
and
, so we reset
and
to zero.
- The horizontal segment
is now available to grow flowers, so we increase
by one for each of those coordinates.
Directly implementing the above algorithm yields a solution of complexity , scoring 45 points.
For full score, we need a data structure that supports the following operations:
- Set
;
- Increase
by one for each
in
.
Some of the data structures that do this are interval trees and Fenwick trees for per query, or splitting the sequence
into blocks of size about
, for
per query. See task Jagoda for details on this structure.
Comments