как вариант с динамическим массивом и вычислением за один проход...
var
d : array of integer := new integer[0];
a, s : integer;
begin
repeat
read(a);
if (a <= 300) and (a > 0) then begin
setLength(d, d.Length+1);
d[d.Length-1] := a;
if (a mod 10 = 6) and (a mod 6 = 0) then s += a;
end;
until (a = 0) or (d.Length = 100);
writeln(s);
end.