Pascalabc 30
дана цепочка, состоящая из синих (b) и красных (r) точек. нужно удалить наименьшее количество синих точек так, чтобы сначала шли только синие, а потом – только красные.
входные данные
входная строка содержит только символы 'b' и 'r' без пробелов.
выходные данные
нужно вывести полученную цепочку, в которой сначала идут только синие точки, а потом – только красные. во второй строке нужно вывести количество удалённых синих точек.
примеры
входные данные
bbbrbrbrr
выходные данные
bbb
2
var
c,d,Gd,Gm:integer;
k:real;
begin
Writeln('10<=c<=460; 10<=d<=230');
Write('Задайте c в пределах от 10 до 460: ');Read(c);
if (c<10) or (c>460) then Writeln('Неверное значение!')
else begin
Write('Задайте d в пределах от 10 до 230: '); Readln(d);
if (d<10) or (d>230) then Writeln('Неверное значение!')
else begin
Gd := Detect;
InitGraph(Gd, Gm, 'Y:\tp7\bgi'); { Инициализируем графический режим }
SetColor(4);
k:=GetMaxX/GetMaxY; { Коэффициент искажений по осям }
if c<d then Rectangle(Trunc(10/k),10,Trunc((2*d+10)/k),2*d+10)
else Line(Trunc(c/k),c,Trunc(d/k),d);
Readln;
CloseGraph
end
end
end.
Вес одного символа (Включая точки, запятые, пробелы и т.д) равен 8 битам.
Например.
Кошка мурлычет. Вес этого предложения равен:
I = i · k.
I - это информационный объём всего сообщения.
i - это информационный объём одного символа.
k - это количество символов во всём сообщении.
То есть, количество символов умножить на вес одного символа. В данном случае получим 15 · 8 = 120 (В битах. Если нужно перевести в байты, то 120 : 8 = 15 байт (Т.к. в одном байте содержится 8 бит)).
Надеюсь, ответ достаточно исчерпывающий.