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