// PascalABC.NET 3.1, сборка 1219 от 16.04.2016begin var s:=ReadlnString('>'); var s1:=s.Trim; var a:=s1.ToWords.ToArray; // a - массив слов // b - массив слов с хвостовыми пробелами var q:=Regex.Matches(s1,'(\S+\s*)'); var b:array of string; SetLength(b,q.Count); var i:=0; foreach var e in q do begin b[i]:=e.ToString; Inc(i) end; // частотный словарь для первого слова var d:=new Dictionary<char,integer>; foreach var e in a[0] do d[e]:=d.Get(e)+1; // все повторяющиеся символы из словаря помещаем в массив dub var dub:=d.Where(x->x.Value>1).Select(x->x.Key).ToArray; if dub.Length=0 then Writeln('НЕТ') else begin var res:=b[0]; // начало выходной строки i:=1; while s[i]=' ' do begin res:=' '+res; Inc(i) end; for i:=1 to a.Length-1 do begin var found:=false; foreach var e in dub do begin found:=Pos(e,a[i])>0; if found then break end; if found then b[i]:=' '*(b[i].Length-a[i].Length); res+=b[i] end; i:=s.Length; while s[i]=' 'do begin res+=' '; Dec(i) end; Writeln(res) endend.
Тестовое решение:> балабол - по данным словаря болтун, человек, который много говорит попусту балабол - по который много говорит попусту