Для решения задачи необходимо написать программу, которая будет обрабатывать входные данные, анализировать массив и выводить индексы элементов, равных заданному значению ( X ). Ниже приведен пример реализации на языке Python.
def find_indices_of_x():
# Считываем размер массива N
N = int(input().strip())
# Считываем элементы массива и преобразуем их в список целых чисел
array = list(map(int, input().strip().split()))
# Считываем число X
X = int(input().strip())
# Находим индексы элементов, равных X
indices = [i + 1 for i in range(N) if array[i] == X] # Нумерация с 1, поэтому i + 1
# Если список индексов не пуст, выводим их через пробел
if indices:
print(" ".join(map(str, indices)))
else:
# Если таких элементов нет, выводим -1
print(-1)
# Запуск функции
find_indices_of_x()
Пояснение
Чтение входных данных:
- Сначала читается размер массива ( N ).
- Затем считываются элементы массива, разделенные пробелами, и преобразуются в список целых чисел.
- После этого считывается число ( X ).
Поиск индексов:
- Используем генератор списка для нахождения всех индексов ( i ), для которых элемент массива равен ( X ). При этом индексы сдвигаются на единицу, чтобы соответствовать требуемой нумерации с единицы.
Вывод результата:
- Если список индексов не пуст, выводим их, объединяя в строку и разделяя пробелами.
- Если список пуст (т.е. таких элементов нет), выводим (-1).
Особенности
- Временная сложность: ( O(N) ), поскольку необходимо один раз пройтись по всем элементам массива.
- Память: Используется дополнительная память для хранения списка индексов, что не превышает ( O(N) ).
Этот подход обеспечивает эффективное решение задачи в условиях ограничений на размер массива ( N ).