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