Вспомним игру: "Придумай слово", в которой из букв слова-донора составляют другие слова. Например, из слова МОНИТОР можно получи
<span>ть МОТОР, РОТ, ТИР и др. Вхождение каждой буквы в новое слово допускается не более того числа раз, с каким она входит в слово-донор. </span> <span>Пусть дана последовательность слов, разделенных пробелами в виде строки символов. Известно, что первое слово в этой строке является донором. Выбрать из оставшихся слов последовательности те, которые можно получить из заданного слова-донора.</span>
Prime := { Получаем первое слово из последовательности }<span>; </span> <span>while </span>{ не конец последовательности (не известно от куда аффтар получает слова ) }<span> do </span> <span> begin </span> <span> Slovo := </span>{ Получаем очередное слово последовательности }<span>; </span> <span> if Length(Slovo) <= Length(Prime) then </span> <span> begin </span> <span> CopyPrime := Prime; </span> <span> N := 1; </span> <span> while (N <= Length(Slovo)) and (Pos(Slovo[N], CopyPrime) > 0 do </span> <span> begin </span> <span> Delete(CopyPrime, Pos(Slovo[N], CopyPrime), 1); </span> <span> Inc(N); </span> <span> end; </span> <span> if N > Length(Slovo) then </span> { Slovo можно получить из первого слова } <span> else </span> { нельзя получить Slovo из первого слова } <span> end; </span> <span> end; </span>