Предмет: Информатика, автор: TotKomyNyzniOtvety

Арифметическая прогрессия
Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Васе дали задание: в заданной последовательности чисел найти три подряд идущих числа, образующих возрастающую арифметическую прогрессию. Вася решил написать программу, которая выводила бы тройку чисел, образующих возрастающую арифметическую прогрессию.

Помоги Васе написать такую программу.

Формат ввода
В первой строке входного файла записано натуральное число N (3 ≤ N ≤ 1 000 000). Во второй строке записано N неотрицательных целых чисел через пробел, каждое из которых не превосходит 1 000 000 000.

Формат вывода
В выходной файл выведите три искомых числа. Если ответов несколько, выведите те числа, которые расположены левее. Если таких чисел нет, выведите –1.

Пример 1
Ввод Вывод
4
1 2 3 4
1 2 3
Пример 2
Ввод Вывод
5
1 2 4 8 16
–1

Ответы

Автор ответа: timkafey
0

python

как я понял первое введённое число нужно чтоб обозначит количество чисел на последующей строке, в этом решении не надо вводить это число чтоб создать список (в python вместо массива список, он отличается от массива тем что тип данных в списке может быть разный) чисел

Но если уж принципиально надо вводить первое число скажи я переделаю

насчет памяти не ручаюсь, это зависит от количества введенных чисел.

Время зависит от мощности пк. На многих за 1 сек должно пойти если он не забит под завязку открытыми приложениями и тд.

numbers = [int(i) for i in input().split()]

for i in range(len(numbers)):

 if i + 2 in range(len(numbers)):

   d = numbers[i+1] - numbers[i]

   if numbers[i] + d == numbers[i+1] and numbers[i+1] + d == numbers[i+2]:

     print(numbers[i], numbers[i+1], numbers[i+2])

     break

 else:

   print(-1)

   break

Похожие вопросы