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