kthxbyeНаверное, стоит «программу» построить так. Даны последовательности
и
. Гарантируется, что
— подпоследовательность
.
Сначала программа ищет наименьший индекс
такой, что
.
Потом она ищет наименьший индекс
такой, что
.
Потом она ищет наименьший индекс
такой, что
.
И так далее.
Фишка тут в том, что, хотя в
может быть много элементов
, равных заданному
, мы ничего не потеряем, выбрав из них тот, у которого наименьший индекс (больший индексов уже найденных предыдущих элементов). Если же мы первый подходящий элемент
пропустим, понадеявшись, что дальше будут и другие, тоже равные
, подпоследовательность может и не сложиться!
Такой программе соответствует рекурсивная функция
: