Editorial for Baltic OI '14 P3 - Sequence
Submitting an official solution before solving the problem yourself is a bannable offence.
Subtask 1
We try all possible values (starting from smallest - ). With each , we check if it is the answer using brute force - checking if all sequence numbers contain the required digits.
Time complexity:
- correct answer.
Since and in the first subtask, this solution is enough for it.
Subtask 2
If the full solution is programmed inefficiently, it is possible to acquire an solution.
Time complexity:
Subtask 3
We are assuming that all elements of the given sequence are equal. Let's denote this digit as .
If , then our answer is .
If , then (some number of digits 8
and one digit 9
at the end).
If , then .
The length of depends on . For example, if and our sequence is 3 3 3 3 3
, then and . If and , then .
Time complexity:
Subtask 4
We'll solve our task by solving a more complex task first: for each sequence element we'll declare sequence . is the sequence of digits which sequence element has to have. For our initial task, , where - ... (DMOJ editor note: did the author get lazy here?)
Let's denote , where is the last digit and . Now we have to try all possible values . After we have locked with one of the possible values, our sequence looks like this:
After removing last digit, we get sequence
What digits does have to have? has , so must have . has , so must have and so on.
By merging these requirements, we can get a new sequence of sets . declares the required digits for , - for , and so on. We repeat the same steps with our new sequence. What happens when we repeat these steps? We started with sequence length , so after the first step, our new sequence length will be not bigger than . So after steps our sequence will be of length or - at this step, we can produce the answer.
Time complexity:
Comments