Продвинутая индексация: булевы маски и целочисленные массивы индексов
Содержание курса
Комбинированные маски и присваивание: зануление выбросов
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая:
- Читает из
stdinодну строку с целыми числами, разделёнными пробелами. Создаёт из них одномерныйndarrayс именемarrчерезnp.arrayсdtype=int. - Читает вторую строку с двумя целыми числами
loиhi— границы «нормального» диапазона. - Строит маску
mask_normalдля элементовarr, которые одновременно больше или равныloи меньше или равныhi, используя оператор&. - Выводит через пробел элементы
arr[mask_normal], затем на следующей строке — их количество (shape результата). - Строит маску
mask_outкак инверсиюmask_normalчерез~. - Присваивает
arr[mask_out] = -1(зануляет выбросы на месте). - Выводит изменённый массив
arrчерез пробел, затем на следующей строке — количество элементов, равных-1(используйте маскуarr == -1и её shape).
Ввод и вывод
Программа читает stdin и пишет в stdout.
Формат ввода
Строка 1: целые числа через пробел — элементы массива (не менее двух).
Строка 2: два целых числа lo hi через пробел.
Формат вывода
Строка 1: элементы arr[mask_normal] через пробел.
Строка 2: количество нормальных элементов (одно целое).
Строка 3: изменённый arr через пробел.
Строка 4: количество элементов, равных -1 (одно целое).
О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
- Тест 1Ввод
12 47 3 28 -5 9 5 30
Ожидаемый вывод12 28 9 3 12 -1 -1 28 -1 9 3
Как проверяется решение
Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
