Editorial for WC '18 Contest 4 J4 - Your Name, Please
Submitting an official solution before solving the problem yourself is a bannable offence.
button presses are required just to confirm a length-
name, regardless of its letters (an
A
button press upon selecting each letter, plus a final +
button press at the end). Therefore, if , then no valid name exists. Otherwise, let
be the number of additional
<
/>
button presses required.
Let's consider how many such button presses each letter in a name contributes. Let be the number of button presses required to move the cursor to a letter
from the previous letter
(with the previous letter before the first one assumed to be
A
). We'll either repeatedly press <
or >
, whichever requires fewer presses. These two options require and
button presses (in some order), giving us
. We can observe that, given any previous letter
, it's possible to choose some next letter
such that
has any wanted value between
and
, inclusive.
We can then observe that a valid name exists if and only if . Furthermore, we can construct a name for a given
value by greedily choosing letters one by one such that
is maximized each time (up to at most
), but without exceeding the remaining allotment of required button presses.
Comments