kthxbyeНаверное, стоит «программу» построить так. Даны последовательности

и

. Гарантируется, что

— подпоследовательность

.
Сначала программа ищет наименьший индекс

такой, что

.
Потом она ищет наименьший индекс

такой, что

.
Потом она ищет наименьший индекс

такой, что

.
И так далее.
Фишка тут в том, что, хотя в

может быть много элементов

, равных заданному

, мы ничего не потеряем, выбрав из них тот, у которого наименьший индекс (больший индексов уже найденных предыдущих элементов). Если же мы первый подходящий элемент

пропустим, понадеявшись, что дальше будут и другие, тоже равные

, подпоследовательность может и не сложиться!
Такой программе соответствует рекурсивная функция

:
