Задача 27 отсюда:
http://www.ctege.info/ege-po-informatike/probnyiy-ege-2015-po-informatike-may-2015.html var
N, R, i, control, mod_t, mod_d, tmp: integer;
mod_a: array [0..2] of integer;
begin
for i := 0 to 2 do
mod_a[ i ] := 1001;
control := 2002;
readLn(N); {читаем количество строчек}
for i := 1 to N do
begin
readLn(tmp);
mod_t := tmp mod 3;
mod_d := (3 - mod_t) mod 3;
if (tmp + mod_a[mod_d] < control) then
control := tmp + mod_a[mod_d];
if (tmp < mod_a[mod_t]) then
mod_a[mod_t] := tmp;
end;
readLn(R);
if (control = 2002) then
control := 1;
writeLn('Вычисленное контрольное значение: ', control);
if (control = R) then
writeLn('Контроль пройден.');
else
writeLn('Контроль не пройден.');
end.
Будет ли эта программа эффективной по памяти и времени, или что-то я не учел?