Форум » Обработка числовых последовательностей » Пожалуйста, помогите оценить решение. (ЕГЭ 2015) » Ответить

Пожалуйста, помогите оценить решение. (ЕГЭ 2015)

Vladienr: Доброго времени суток. Краткий текст задачи: Прибор получает неотрицательные показания. Всего их не больше 10000, каждое из показаний не превышает 1000. Нужно найти среди данной последовательности 2 числа, которые дадут минимальное ЧЕТНОЕ произведение. Расстояние между этими показаниями должно быть не менее 8 минут. В ответ вывести само произведение или -1, если такое произведение составить невозможно. Мое решение: [more] var a:array[0..7] of integer; m,x,i,N,p1,p2: integer; minp: longint; begin readln(N); p1:=1001; p2:=1001; minp:=1000*1000+1; for i:=1 to 8 do readln(a[i mod 8]); for i:=9 to N do begin readln(x); m:=a[i mod 8]; if (m mod 2=0)and(m<p1) then p1:=m; if (m mod 2=1)and(m<p2) then p2:=m; if (p1<>1001)and(x*p1<minp) then minp:=x*p1; if (x mod 2=0)and(p2<>1001)and(x*p2<minp) then minp:=x*p2; a[i mod 8]:=x; end; if minp=1000*1000+1 then writeln(-1) else writeln(minp); readln end. [/more] Данное решение эксперты оценили в 2 балла. Целесообразно ли подавать на апелляцию и рассчитывать на положительный исход?

Ответов - 4

Людмила: Минимальное четное произведение может быть получено и из произведения двух наименьших четных элементов, а не только из произведения минимального четного элемента на минимальный нечетный элемент (как сделано у Вас). Например, последовательность 2, 4, 5, ... далее возрастают элементы. Это содержательная ошибка.

Vladienr: Прошу прощения, немного не понял вас. В этой части программы "if (p1<>1001)and(x*p1<minp) then minp:=x*p1; " мы рассматриваем произведение минимального четного показания на только что введенное x. Х, в свою очередь, может быть каким угодно. Хоть минимальным четным, хоть минимальным нечетным, а хоть вообще не подойти.

Поляков: Vladienr пишет: "if (p1<>1001)and(x*p1<minp) then minp:=x*p1; " мы рассматриваем произведение минимального четного показания на только что введенное x. Х, в свою очередь, может быть каким угодно. Я не вижу ошибки в программе, во всяком случае, не могу подобрать контрпример. Рекомендую подать на апелляцию.


Vladienr: Большое спасибо! Очень приятно, что вы ответили.



полная версия страницы