<em>// PascalABC.NET 3.3, сборка 1627 от 27.01.2018</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var n:=ReadInteger;
var a:=ReadArrReal(n);
var si:=a.IndexesOf(t->t=0);
if si.Count<2 then Writeln(0)
else Writeln(a[si.First+1:si.Last].Sum:0:3)
end.
<u>Примеры</u>
8
-4.6 3.9 0 2.4 1.7 0 0 2.1
4.100
5
0 0.244 -3.253 0 2.34
-3.009
Ошибка действительно всего одна. См. вложения. 2>0 все же равно true.
<span>В уме малость сложновато, на бумаге - проще. Каждая цифра в 16-ричной системе - это тетрада (4 бита) . Записываем все цифры числа подряд в двоичной системе (0=0000,1=0001,...9=1001,A=1010,B=1011,...F=1111). А потом группируем полученную последовательность бит триадами, по 3 бита, начиная справа (с младших бит) . И записываем то, что получилось, 8-ричными цифрами (000=0,001=1,...111=7). Для обратного перевода все делаем наоборот - записываем битовые триады и группируем их в тетрады. </span>
Количество символов = 3*40*60 = 7200
На 1 символ: 14400/7200 = 2 байта
<span>2 байта = 2*8 бит = 16 бит (двоичных разрядов)</span>