// 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.
Если никакие две карточки не были открыты дважды, то все попытки мистера Форда были неудачными, он вытаскивал разные ненужные карточки; все ходы мистера Фокса, кроме последнего, тоже были неудачными, а на последнем ходу он открыл все 5 нужных карточек.
Всего неудачных ходов могло быть не больше 30 - 5 = 25 - это число неподходящих карточек. Мистер Фокс и мистер Форд сделали одинаковое число неудачных ходов, значит, вместе они сделали не больше 24 неудачных ходов, а с учетом последнего, удачного, хода мистера Фокса, ходов могло быть не более 25.
// Внимание! Если программа не работает, обновите версию!
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.
Пример
Ведите строку: корова барометр молоко длинношеее перемена соответствие кровообращение молоковоз борода
молоко длинношеее перемена соответствие кровообращение
Всего неудачных ходов могло быть не больше 30 - 5 = 25 - это число неподходящих карточек. Мистер Фокс и мистер Форд сделали одинаковое число неудачных ходов, значит, вместе они сделали не больше 24 неудачных ходов, а с учетом последнего, удачного, хода мистера Фокса, ходов могло быть не более 25.
ответ: 25.