Решение номера 8217 ФИПИ

В физической лаборатории проводится долговременный эксперимент по изучению гравитационного поля Земли. По каналу связи каждую минуту в лабораторию передаётся положительное целое число – текущее показание прибора «Сигма 2015». Количество передаваемых чисел в серии известно и не превышает 10 000. Все числа не превышают 1000. Временем, в течение которого происходит передача, можно пренебречь.

 

Необходимо вычислить «бета-значение» серии показаний прибора – минимальное чётное произведение двух показаний, между моментами передачи которых прошло не менее 6 минут. Если получить такое произведение не удаётся, ответ считается равным –1.

 

Входные данные представлены следующим образом. В первой строке задаётся число N – общее количество показаний прибора. Гарантируется, что N > 6. В каждой из следующих N строк задаётся одно положительное целое число – очередное показание прибора.

 

Пример входных данных:

11

12

45

5

3

17

23

21

20

19

18

17

 

Программа должна вывести одно число – описанное в условии произведение, либо –1, если получить такое произведение не удаётся.

 

Пример выходных данных для приведённого выше примера входных данных:

54

 

Объяснение

Произведение будет четным, если хотя бы один из элементов четный. Пары, где оба элемента нечетные рассматривать не будем. Первые 6 элементов запишем в массив (mas). Теперь при вводе очередного значения мы будем рассматривать число, полученное 6 минут назад. Сравниваем его с минимальным элементом (min_number) и, если оно четное, то сравниваем его с минимальным четным элементом (min_even). Далее, если очередное значение (a) четное, то в переменную Multiplication записываем произведение a и min_number. Если же оно нечетное, то узнаем: были ли четные элементы раньше (сравниваем min_even с его начальным значением). Если были, то в переменную Multiplication записываем произведение a и min_even, в противном случае ничего не делаем. Теперь сравниваем Multiplication и минимальное произведение (min_comp) и заменяем рассматриваемое число в массиве на a. После выполнения цикла осталось только вывести результат (min_comp).

 

Решение на языке Pascal

Показать решение

 

Решение на языке Python

Показать решение

 

Похожие задачи: 8190

 

Оставить комментарий