Program maxx;
var ocenka,sdal,nesdal,k,i:integer;
begin
writeln('введите кол-во оценок');
readln(k);
sdal:=0;
nesdal:=0;
for i:=1 to k do
begin
readln(ocenka);
if ocenka>2
then sdal:=sdal+1;
else nesdal:=nesdal+1;
end;
writeln(sdal);
writeln(nesdal);
<span>end.</span>
Была задачка такая в школе у нас на одной важной работе. Про пещеры и клад. К ней нужно было применить алфавитный подход...
<<<span>Известно, что ровно в двух пещерах из пяти есть клады. Сколько битов нужно, чтобы закодировать информацию о расположении кладов?>>
Если задачу решать традиционно, как на первый взгляд кажется - изящно, то ответ получится примерно таков:
1 2 3 4 5
0 1 0 0 1
Итого: 5 битов.
Мы же говорим о рациональном подходе. Всего 5 пещер. В двух клады. Сколько вариантов расположения кладов существует?
1 2 3 4 5
1-2,1-3,1-4,1-5,2-3,2-4,2-5,3-4,3-5,4-5
Итого: 10 вариантов - вот тебе и алфавит. Можешь пронумеровать варианты(0, 1,2,3...) и информацию хранить будешь в скольки битах?
10=2^i
2^3=8(10 сюда не входит)
2^4=16(10 входит. Пусть будет немного лишней информации, зато она не потеряется.)
Получаем 4 бита.</span>
2^i=128
i=7 бит/симв
11,5*1024=11776 байт
11776*8=94208 бит
94208/7=13458 символа
Slovo nachinaetsja i zakanchivaetsja na odnu i tu zhe bukvu. Eto slovo "кортик".
Esli bukva "и" imeet nomer 1 (to est' stoit na pervom meste), to progovarivaja alfavit dal'she, poluchaem bukvu "к", kotoraja budet tret'ej. I tak dalee so vsemi ostavshimisja bukvami - "р" na 9-m meste i "о" na 7-m meste