Задача 1 var s: string; i: integer; begin readln(s); for i:=2 to length(s)-2 do if (s[i-1]+s[i]+s[i+1]+s[i+2]=' не ') then s[i+1]:='и' else if ((s[i-1]+s[i]+s[i+1]='не ') and (i=2)) then s[i]:='и' else if ((s[i]+s[i+1]+s[i+2]=' не') and (i=length(s)-2)) then s[i+2]:='и'; write(s); end.
Задача 2 var s: string; i, k: integer; begin readln(s); for i:=2 to length(s)-1 do if s[i-1]+s[i]+s[i+1]=' в ' then inc(k) else if ((s[i-1]+s[i]='В ') or (s[i-1]+s[i]='в ')) and (i=2) then inc(k); write(k); end.
Если есть вопросы, пишите в ЛС :)
infooem
16.11.2022
Чем больше операций |, тем больше находится страниц, чем больше операций &, тем меньше находится страниц. Поэтому по возрастанию надо выбрать запросы в порядке от максимума & до максимума | Получим порядок A (или В, или Г - пока неясно) Б Теперь придется порассуждать. Нам круги Эйлера (см. вложение). Заштрихованные области показывают объемы найденных страниц. На правом рисунке видно, что заштрихованная область включает в себя заштрихованную область из левого рисунка, следовательно, по варианту В будет найдено меньше страниц, чем по Г. Теперь можно написать ответ: A В Г Б
var
s: string;
i: integer;
begin
readln(s);
for i:=2 to length(s)-2 do
if (s[i-1]+s[i]+s[i+1]+s[i+2]=' не ') then s[i+1]:='и'
else if ((s[i-1]+s[i]+s[i+1]='не ') and (i=2)) then s[i]:='и'
else if ((s[i]+s[i+1]+s[i+2]=' не') and (i=length(s)-2)) then s[i+2]:='и';
write(s);
end.
Задача 2
var
s: string;
i, k: integer;
begin
readln(s);
for i:=2 to length(s)-1 do
if s[i-1]+s[i]+s[i+1]=' в ' then inc(k)
else if ((s[i-1]+s[i]='В ') or (s[i-1]+s[i]='в ')) and (i=2) then inc(k);
write(k);
end.
Если есть вопросы, пишите в ЛС :)