Продвинутая индексация: булевы маски и целочисленные массивы индексов
Содержание курса
Двумерный массив: маска через |, инверсия и присваивание строкой
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая:
- Читает из
stdinдва целых числаRиC— размер двумерного массива. - Создаёт массив
mчерезnp.arange(R * C).reshape(R, C)сdtype=int. - Строит маску
mask_edgeдля элементов, которые меньшеC(первая строка) или больше или равныR * C - C(последняя строка), используя оператор|. Выводит элементыm[mask_edge]через пробел, затем ихshape. - Строит инвертированную маску
mask_inner = ~mask_edgeдля внутренних элементов. Выводит элементыm[mask_inner]через пробел, затем ихshape. - Выполняет
m[mask_inner] = -1— заменяет внутренние элементы на-1на месте. - Читает из
stdinодин целый индекс строкиr_idx. Строит маскуmask_row = m[r_idx] != -1для элементов указанной строки, которые не равны-1. Выводитm[r_idx][mask_row]через пробел, затемm[r_idx][~mask_row]через пробел.
Ввод и вывод
Программа читает stdin и пишет в stdout.
Формат ввода
Строка 1: два целых числа R C через пробел (R ≥ 3, C ≥ 2, R * C ≥ 6).
Строка 2: одно целое число r_idx — индекс строки (0 ≤ r_idx < R).
Формат вывода
Строка 1: элементы m[mask_edge] через пробел.
Строка 2: shape результата m[mask_edge] в виде (k,).
Строка 3: элементы m[mask_inner] через пробел.
Строка 4: shape результата m[mask_inner] в виде (k,).
Строка 5: элементы m[r_idx], которые не равны -1, через пробел (может быть пустой строкой, если таких нет).
Строка 6: элементы m[r_idx], которые равны -1, через пробел (может быть пустой строкой, если таких нет).
О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
- Тест 1Ввод
3 4 0
Ожидаемый вывод0 1 2 3 8 9 10 11 (8,) 4 5 6 7 (4,) 0 1 2 3
Как проверяется решение
Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
