1 бит содержит разряд двоичного числа
begin
var s : = readlnstring;
var s1 : = s.where(t -> t in ['0'..'9']).sorted.groupby(t -> t)
.select(c -> (c.key, c.(t -> t[0]).toarray;
var s2 : = s1.where(t -> t[1] > 1).select(t -> t[0] * (t[1] div 2))
.joinintostring('').replace('0', '');
var s3 : = s1.where(t -> t[1] = 1);
if s3.count > 0 then s2 : = s2 + s3.select(t -> t[0]).first + s2.inverse
else s2 : = s2 + s2.inverse;
s2.println
end.
пример for i: =99921 downto 2 29192program rawtcherv;
function incpost(var i: integer): integer;
begin
result: =i;
inc(i);
end;
// из символов из входной строки составить палиндром с минимальным значением
function makeminpalindromemaxlength(const s: string): string;
var
a: array[1..9] of byte;
i,j,fino,cur,center: integer;
begin
fillchar(a{%h-},sizeof(a),0);
// вычисляем количество разных цифр, встреченных во введённой строке
for i: =1 to length(s) do
if s[i] in ['1'..'9'] then
inc(a[ord(s[i])-ord('0')])
else
break;
// максимальная длина палиндрома равна длине строки
cur: =1;
center: =-1;
setlength(result,length(s));
// составляем палиндром. в начало вставляем половину всех цифр от мин. к макс.
for i: =1 to 9 do begin
// поиск минимального числа, которое можно вставить в центр
if (a[i] mod 2=1) and (center< 0) then
center: =i;
// вставляем в начало строки половину символов
fino: =a[i] div 2;
for j: =1 to fino do
result[incpost(cur)]: =chr(i+ord('0'));
// оставшуюся половину вставим потом
a[i]: =fino;
end;
// вставляем центральный символ
if center> 0 then
result[incpost(cur)]: =chr(center+ord('0'));
// вставляем в обратном порядке символы палиндрома
for i: =9 downto 1 do begin
for j: =1 to a[i] do
result[incpost(cur)]: =chr(i+ord('0'));
end;
// восстанавливаем длину строки
setlength(result,cur-1);
end;
procedure test(const s: string);
var
s1: string;
begin
s1: =makeminpalindromemaxlength(s);
writeln('orig=',s);
writeln('pal =',s1);
writeln('diff=',length(s)-length(s1));
writeln;
end;
begin
test('9998888776665432111');
readln;
end.
Поделитесь своими знаниями, ответьте на вопрос:
№с выборочным ответом.какое количество информации содержит один разряд двоичного числа? 1)1 байт 2)3 бита 3)4 бита 4)1 бит. №2. с кратким ответом. какое количетсво информации несет двоичный код 10101010?
dlya zadachi n2 prikrepil faili, a dlya pervoi - 1 bait;