Задача понятна: прочитав N и N целых чисел, нужно получить массив, в котором каждый элемент повторяется дважды, и вывести его.
Понимание и план:
- Считаем N.
- Затем считаем N целых чисел в порядок.
- Создадим новый список res и для каждого элемента x добавим в него x два раза.
- Выведем res в виде обычного Python-списка: [a, a, b, b, ...].
- Сложность: время O(N), память O(N).
Примеры решений на Python (несколько вариантов):
Вариант 1: чтение всего ввода сразу и явное удваивание
- Плюс: удобен, когда вход может быть разбит на несколько строк.
- Код:
import sys
data = list(map(int, sys.stdin.read().strip().split()))
if not data:
print("[]")
sys.exit()
n = data[0]
arr = data[1:1+n]
res = []
for x in arr:
res.append(x)
res.append(x)
print('[{}]'.format(', '.join(map(str, res))))
Вариант 2: построчное чтение (рабочий для ввода по строкам)
- Плюс: простое, естественно подходит для задачи в учебнике.
- Код:
n = int(input().strip())
arr = [int(input().strip()) for _ in range(n)]
res = []
for x in arr:
res.extend([x, x])
print(res)
Пояснения к примерам:
- Для входа:
3
4
5
2
результат будет:
[4, 4, 5, 5, 2, 2]
Сложность:
- Время: O(N) — каждый элемент обработан константное число раз.
- Память: O(N) — хранится итоговый массив из 2N элементов.
Если хочешь, могу адаптировать решение под другой язык программирования или под конкретный формат ввода/вывода.