Var s:string; m,mn,m1,m2:set of char; i,k,l:integer; begin writeln('Введите последовательность русских слов:'); readln(s); m:=['Б','б','В','в','Г','г','Д','д','Ж','ж','З','з','Й','й','Л','л','М','м','Н','н','Р','р']; k:=0; for i:=1 to length(s) do if not (s[i] in ['А'..'Я','а'..'я',' ','.']) then k:=k+1; if k>0 then writeln('Ошибка ввода') else begin while pos(' ',s)>0 do delete(s,pos(' ',s),1); if s[length(s)]='.' then s[length(s)]:=' '; k:=0; mn:=[]; m1:=m; m2:=m; for i:=1 to length(s) do begin mn:=mn+[s[i]]; if s[i]=' ' then begin k:=k+1; if k mod 2=1 then m1:=m1*mn else m2:=m2*mn; mn:=[]; end; end; mn:=m1-m2; print(mn); end; end.
Пример: Введите последовательность русских слов: напечатать в алфавитном порядке звонкие буквы. {н}
"На первом - одна из бусин А, В,Д, не стоящая на третьем месте" - исходя из этого утверждения, выпадают варианты АГД, ВДВ.
"На втором месте - одна из бусин Б,В,Г,Д, не стоящая в цепочке на первом месте".
Остаются два варианта: ДДГ, АББ.
Так как вариант ДДГ противоречит условию, правильный вариант - АББ.
2. Поступим также, пойдем методом исключения.
Однозначное декодирование - кодовое слово не может быть началом другого.
010 - неоднозначное декодирование "В".
1111 - неоднозначное декодирование "Б".
1101 - неоднозначное декодирование "Г".
Остается вариант 003.