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