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

Космическое агентство производит эксперимент, в котором участвуют спутники «Птолемей-1» и «Птолемей-2». На спутнике «Птолемей-1» установлен прибор для измерения расстояния между спутниками. Каждую минуту прибор передаёт по каналу связи неотрицательное целое число – расстояние между спутниками в текущий момент в километрах.

 

Необходимо найти в заданной серии показаний прибора минимальное чётное произведение двух показаний, между моментами передачи которых прошло не менее 8 минут. Если получить такое произведение не удаётся, ответ считается равным –1. Расстояние между спутниками не превышает 1000 км. Общее количество показаний прибора в серии не превышает 10 000.

 

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

 

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

13

12

45

5

3

14

31

17

23

21

20

19

18

17

 

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

 

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

54

 

Объяснение

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

 

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

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

 

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

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

 

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

 

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