Задача понятна. Ниже подробное решение с объяснениями и код на Python, который следует условиям: вводится N и N целых чисел по строкам; нужно вывести массив чисел, которые больше минимального значения среди всех чисел, в том же порядке.
Задача разбита на шаги
- Ввод данных: читаем N, затем N целых чисел в том же порядке.
- Найдём минимальное значение среди введённых чисел.
- Отфильтруем числа: возьмём только те, которые больше минимума, сохранив исходный порядок.
- Выведем получившийся массив.
- Важные замечания:
- Если все числа равны между собой, результат будет пустым массивом.
- Временная сложность: O(N), по памяти: O(N) для хранения исходного массива и результата.
Пример:
Ввод:
5
3
1
4
1
5
Минeмальное = 1
Числа больше 1: [3, 4, 5]
Вывод: [3, 4, 5]
Код на Python (работает при вводе N чисел по строкам)
def main():
try:
N = int(input().strip())
except:
print([]) # нет данных
return
arr = []
for _ in range(N):
try:
arr.append(int(input().strip()))
except:
# если не хватает строк или неверный ввод
break
if not arr:
print([])
return
mn = min(arr)
res = [x for x in arr if x > mn]
print(res)
if name == "main":
main()
Дополнительные варианты (если числа могут идти в одной строке, или нужно более универсальное чтение):
- Можно считать весь вход единым массивом и взять N и далее N чисел:
data = list(map(int, sys.stdin.read().split()))
N = data[0]
arr = data[1:1+N]
mn = min(arr)
res = [x for x in arr if x > mn]
print(res)
Пояснение по сложности
- Чтение данных занимает O(N).
- Поиск минимума — O(N).
- Фильтрация — O(N).
- Итого время: O(N), потребление памяти: O(N) дополнительно под arr и res (в сумме до O(N)).
Если хочешь, могу привести аналогичный пример на другом языке (JavaScript, Java, C++) или адаптировать под конкретный формат ввода.