// PascalABC.NET 3.2, сборка 1407 от 18.03.2017
// Внимание! Если программа не работает, обновите версию!
function Good(s:string):boolean;
begin
var n:=s.Length;
var t:=s.ToCharArray.Distinct;
Result:=false;
foreach var c in t do begin
var k:=0;
for var i:=1 to n do
if s[i]=c then k+=1;
if k=3 then begin Result:=true; Break end
end;
end;
begin
var aw:=ReadlnString('Ведите строку:').ToWords;
var aw2:=aw.Where(w->Good(w));
aw2.Println;
end.
Пример
Ведите строку: корова барометр молоко длинношеее перемена соответствие кровообращение молоковоз борода
молоко длинношеее перемена соответствие кровообращение