27-я ЕГЭшная (C4). Проверьте, правильно ли написана программа и является ли она как можно более эффективной по времени и по памяти.
Для заданной последовательности неотрицательных целых чисел необходимо найти максимальное произведение двух её элементов, номера которых различаются не менее чем на 8. Значение каждого элемента последовательности не превышает 1000. Количество элементов последовательности не превышает 10000.
Напишите программу для решения поставленной задачи, которая будет эффективна как по времени, так и по памяти (или хотя бы по одной из этих характеристик).
Программа считается эффективной по времени, если время работы программы пропорционально количеству элементов последовательности N, т.е. при увеличении N в k раз время работы программы должно увеличиваться не более чем в k раз. Программа считается эффективной по памяти, если размер памяти, использованной в программе для хранения данных, не зависит от числа N и не превышает 1 килобайта.
Входные данные представлены следующим образом. В первой строке задаётся число N — общее количество элементов последовательности. Гарантируется, что N > 8. В каждой из следующих N строк задаётся одно неотрицательное целое число – очередной элемент последовательности.
Пример входных данных:
10
100
45
55
245
35
25
10
10
10
26
Программа должна вывести одно число — описанное в условии произведение. Пример выходных данных для приведённого выше примера входных данных: 2600.
Решение:
var N,max,max2,i,a:integer;
begin
readln(N);
max:=8;
max2:=0;
for i:=1 to N do
begin
readln(a);
if a>max then
if max-a>=8 then
begin
max2:=max;
max:=a
end
else max:=a
else if (max-a>=8)and(a>max2) then
max2:=a;
end;
writeln(max*max2);
end.
Ответа на этот вопрос пока нет. Попробуйте найти его через форму поиска.
Вас заинтересует
2 года назад
2 года назад
7 лет назад
9 лет назад
10 лет назад