
Арифметическая прогрессия Ограничение времени 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

Ответы на вопрос

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



Для решения этой задачи можно использовать следующий алгоритм:
- Считать количество чисел N из первой строки входного файла.
- Считать последовательность чисел из второй строки входного файла.
- Пройти по последовательности чисел и проверить для каждого числа, является ли оно началом арифметической прогрессии из трех чисел.
- Если такую прогрессию нашли, вывести найденную тройку чисел и завершить программу.
- Если ни одну такую прогрессию не нашли, вывести -1.
Пример кода на Python:
pythondef find_arithmetic_progression(numbers):
n = len(numbers)
for i in range(n - 2):
if numbers[i] + numbers[i+2] == 2 * numbers[i+1]:
return [numbers[i], numbers[i+1], numbers[i+2]]
return []
def main():
n = int(input())
numbers = list(map(int, input().split()))
result = find_arithmetic_progression(numbers)
if result:
print(*result)
else:
print(-1)
if __name__ == "__main__":
main()
Вы можете сохранить данный код в файле (например, progression.py
), а затем использовать его для обработки входных данных и получения выходных результатов, как указано в задаче.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili