26 букв и 10 цифр составляют алфавит мощностью 36 знаков. Если кодировать их числами от 0 до 35, а 2⁵ < 35 < 2⁶, то для одного знака потребуется до 6 бит. По условию "Каждый символ кодируется одинаковым и минимально возможным количеством бит", поэтому принимаем размер 6 бит. Длина номера 7 символов и суммарно они займут 7×6 = 42 бита. Но по условию номер должен занимать целое число байт. В байте 8 бит, тогда для номера нужно отвести 42/8 = 6 байт с округлением до целых в большую сторону. 20 номеров потребуют для хранения 6×20 = 120 байт.
Последовательности длиной 7, содержащей 5 букв А могут быть следующими: ** (* - любой из символов В или С) *А* ААА*АА* АА*ААА* А** ** (пока 6 вариантов) Далее - аналогично: **А ААА*А*А АА*АА*А А*ААА*А **А (ещё 5 вариантов) ААА**АА АА*А*АА А*АА*АА *ААА*АА (ещё 4 варианта) АА**ААА А*А*ААА *АА*ААА (ещё 3 варианта) А** *А* (ещё 2) ** (ещё 1) Итого: 6+5+4+3+2+1=21 Так как на месте * могут быть любые из 2 символов В или С, то это даст ещё по 4 варианта для каждого случая. Можно здесь, конечно, комбинаторику вспомнить. Итого: 21*4 = 84
x,z:string;
i:integer;
ar:array['а'..'я'] of boolean;
begin
readln(x);
readln(z);
for i:=1 to Length(z) do
ar[z[i]]:=true;
for i:=Length(x) downto 1 do
if (ar[x[i]] = true) then delete(x,i-1,1);
writeln(x);
end.
Не забудь отметить лучший ответ ;-)